Categorias
dll mysql sqldatasource

SqlDataSource e MySQL

Estava fazendo uma integra????o de bases de dados MySQL e SQL Server e, em certa etapa, teria que utilizar o SqlDataSource para preencher um GridView alternando entre o SQL Server e o MySQL. Contudo, nativamente, o provider do SqlDataSource n??o aceita o MySQL a n??o ser por ODBC conforme especifica????o. Dei uma lida na net para ver alguns coment??rios e v?? alguns absurdos como: “o SqlDataSource ?? espec??fico do SQL Server” entre outros. Parece que o pessoal n??o l?? as especifica????es. Como disse, d?? sim, mas por ODBC. Mas usando o conector MySQL, conforme um post anterior, ?? poss??vel realizar a integra????o do SqlDataSource a uma base MySQL sem ser por ODBC usando o conector espec??fico. Vamos por a m??o na massa…

Primeiramente v?? no web.config e adicione as seguintes configura????es:

<system.data>
<DbProviderFactories>
<add name=”MySQL Data Provider” invariant=”MySql.Data.MySqlClient” description=”Conector .NET para o MySQL” type=”MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.2.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d” />
</DbProviderFactories>
</system.data>

Atente-se ?? vers??o da DLL do conector que est?? utilizando. No caso, estou usando a 6.2.2.0. Aplique tamb??m o Assembly inserindo a tag abaixo:

<add assembly=”MySql.Data, Version=6.2.2.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D” />

Como disse, n??o vou entrar em detalhes, mas adicionando essas configura????es no web.config de seu projeto j?? estar?? apto para trabalhar adequadamente com o MySQL. Agora  o resto ?? simples, basta inserir o SqlDataSource e colocar o ProviderName=”MySql.Data.MySqlClient”.

Obs: N??o coloque nenhum driver no ConnectionString do SqlDataSource como “Driver=MySQL ODBC 3.5;” ou suas variantes. Utilize a string de conex??o convencional, pois o provider ir?? fornecer informa????es espec??ficas para que o objeto possa se conectar normalmente.

Categorias
banco de dados dll mysql

ASP.NET com Banco MySQL

Todos viram aqui que meus posts dispensam muito embasamento te??rico e parte logo para a pr??tica. Gosto de ser direto… ent??o, vamos l??! Para conectar a bancos MySQL podemos utilizar o ODBC do .NET para conectar e realizar consultas a ele. Contudo, esse tipo de conex??o ?? mais lento e n??o usurfrui de conjunto de instru????es espec??ficas que podem otimizar as opera????es sobre o banco de dados, exemplo o namespace System.Data.SqlClient no qual possuem instru????es espec??ficas do SQL Server para manipula????es dos dados. Assim sendo, a pr??pria MySQL disponibilizou um conector espec??fico para programa????o .NET. Para isso, pode realizar o download aqui.

Fa??a o download do instalador ou zip para obtermos as DLLs. Caso tenham dificuldade na obten????o dos arquivos, vejam nesse link aqui onde cont??m apenas as DLLs b??sicas para o funcionamento. Com os arquivos em m??os, insira-os na pasta Bin do projeto ou d?? um Add Reference para incorpor??-las. Com as DLLs no seu devido local, as classes MySQL j?? podem ser acessadas quando adicionado o namespace MySql.Data.MySqlClient. Abaixo, temos um exemplo de realizar uma consulta no banco de dados. Nota-se que se assemelha bastanto com o SqlDataReader, OdbcDataReader, etc:

using MySql.Data.MySqlClient;

MySqlConnection conexao = new MySqlConnection(“String Conex??o MySQL”);
MySqlCommand comando = new MySqlCommand();
MySqlDataReader datareader = null;
try
{
    conexao.Open();
    try
    {
        comando.Connection = conexao;
        comando.CommandText = “SELECT * FROM Tabela”;
        datareader = comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
    }
    catch (MySqlException erro) { }
}
catch (MySqlException erro) { }

O objeto MySqlDataReader cont??m os dados da consulta efetuada. Bem similiar com as outras formas de uso de conex??o, ent??o n??o h?? erro. Parameters, DataSet e muitos m??todos que o conector fornece podem ser usados de forma similar aos demais conectores citados anteriormente. F??cil…

Ent??o ?? isso! Caso tenham dificuldade na string de conex??o para o MySQL veja no ConnectionStrings a mais adequada a sua necessidade.