Pregunta

Estoy usando el bloque de aplicación de datos para la mayoría de mi acceso a datos, específicamente usando la clase SqlHelper para llamar a ExecuteReader, ExecuteNonQuery y métodos similares. Pasando la cadena de conexión con cada llamada a la base de datos.

¿Cómo puedo modificar esto para habilitar la conexión a una base de datos MySQL también?

¿Fue útil?

Solución

Si tiene instalada la Enterprise Library y ya sabe cómo conectarse a las bases de datos de SQL Server, la conexión a las bases de datos MySQL no es más difícil.

Una forma de hacerlo es usar ODBC. Esto es lo que hice:

  1. Vaya a MySQL.com y descargue el último conector ODBC de MySQL. Mientras escribo esto es 5.1.5. Utilicé la versión de 64 bits, ya que tengo Vista de 64 bits.
  2. Instale el conector ODBC. Elegí usar la versión sin instalador. Simplemente lo descomprimí y ejecuté Install.bat en el símbolo del sistema de un administrador. La versión MSI probablemente funciona bien, pero lo hice de esta manera cuando instalé el conector 3.51.
  3. Verifique la instalación abriendo el panel de control de ODBC y revisando la pestaña Controladores. Debería ver el controlador MySQL ODBC 5.1 que se encuentra allí. Parece que incluso coexiste pacíficamente con la versión anterior 3.51 si ya tienes eso. Además, coexiste pacíficamente con el conector .NET si está instalado también.
  4. En este punto, hará lo que ha hecho para conectarse a una base de datos de SQL Server. Todo lo que necesita saber es qué usar para una cadena de conexión.
  5. Así es como se ve el mío:
  6. Por supuesto que puedes establecer " nombre " a lo que quieras.
  7. Si esta es su única base de datos, puede configurarla como la base de datos predeterminada como esta:
  8. ¡Accede a tus datos en tu código como siempre lo haces! Aquí hay un ejemplo de texto simple:
    public List<Contact> Contact_SelectAll()
    {
        List<Contact> contactList = new List<Contact>();
        Database db = DatabaseFactory.CreateDatabase("MySqlDatabaseTest");
        DbCommand dbCommand = db.GetSqlStringCommand("select * from Contact");
        using (IDataReader dataReader = db.ExecuteReader(dbCommand))
        {
            while (dataReader.Read())
            {
                Contact contact = new Contact();
                contact.ID = (int) dataReader["ContactID"];
                client.FirstName = dataReader["ContactFName"].ToString();
                client.LastName = dataReader["ContactLName"].ToString();
                clientList.Add(client);
            }
        }

        return clientList;
    }

Otra forma de hacerlo es crear y usar un proveedor de MySql. Este tipo hizo eso . Aprendí cómo hacerlo mediante adaptación de estas instrucciones para conectarse a Access. Oh, y aquí hay más ejemplos de cadenas de conexión de MySql .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top