Pergunta

li estou usando o bloco Application Data para uma maioria do meu acesso a dados, especificamente usando a classe SqlHelper para chamar o ExecuteReader, ExecuteNonQuery e, como métodos. Passando a string de conexão com cada chamada de banco de dados.

Como posso modificar isso para permitir a conexão a um banco de dados MySQL também.

Foi útil?

Solução

Se você tem o Enterprise Library instalado e já sabe como se conectar a bancos de dados SQL Server, a conexão com bancos de dados MySQL não é mais difícil.

Uma maneira de fazer isso é usar ODBC. Isto é o que eu fiz:

  1. Vá para MySQL.com e descarregue o conector mais recente ODBC MySQL. Enquanto escrevo isto é 5.1.5. Eu usei a versão de 64 bits, como eu tenho 64 bits Vista.
  2. instalar o conector ODBC. Eu escolhi usar a versão não-installer. Eu só abriu o zíper e correu Install.bat no prompt de comando de um administrador. A versão MSI provavelmente funciona bem, mas eu fiz isto deste modo quando eu instalado o conector 3.51.
  3. Verifique a instalação abrindo o painel de controle ODBC e verificar a guia Drivers. Você deverá ver a 5.1 driver ODBC MySQL listado lá. Parece até mesmo co-existir pacificamente com a versão mais antiga 3.51 se você já tem isso. Além disso, ele coexiste pacificamente com o conector .NET se que está instalado também.
  4. Neste ponto, você vai fazer o que você fez para se conectar a um banco de dados SQL Server. Tudo que você precisa saber é o que usar para uma seqüência de conexão.
  5. Aqui está o que a minha aparência:
  6. É claro que você pode definir "nome" para o que quiser.
  7. Se esta é sua única base de dados, você pode configurá-lo como o defaultDatabase assim:
  8. Acesse seus dados em seu código como você sempre faz! Aqui está um exemplo de texto SQL simples:
    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;
    }

Outra maneira de fazer isso é construir e usar um provedor de MySql. Esse cara fez isso . Eu aprendi a fazer isso por adaptar estas instruções para conexão com Access. Oh, e aqui estão alguns exemplos mais de corda MySql Connection .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top