Conectando-se ao banco MySql v

Conectando-se ao banco MySql via Asp.Net

Neste tutorial, mostraremos como realizar uma conexão entre um script Asp.Net com uma base de dados MySql através do driver MySqlConnector.

Abaixo, segue um exemplo básico utilizando o MySqlConnector em uma aplicação Asp.Net com C#:

Arquivo: mysql.aspx

<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %> 
<%@ import Namespace="MySql.Data.MySqlClient" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
	protected void Button1_Click(object sender, EventArgs e)
		{
	//Ocultar resultados
        gvResultado.Visible = false;
        lblErro.Text = "";
 
        //Declarar e atribuir valores        
        string strQuery = txtQuery.Text;
 
        try
        {
            //Informe aqui os dados de acesso ao banco [IMPORTANTE]
            String HOST    = "ENDEREÇO_OU_IP_DO_SERVIDOR";
            String USUARIO = "NOME_DO_USUARIO";
            String SENHA   = "SENHA_DO_BANCO";
            String BANCO   = "NOME_DO_BANCO";
 
            //Monta a string de conexão utilizando os dados informados anteriormente
            String stringConexao = "Database="+BANCO+";Data Source="+HOST+";User Id="+USUARIO+";Password="+SENHA+"; pooling=false";
 
            //Criando objeto MySqlConnection
            MySqlConnection objConexao = new MySqlConnection(stringConexao);
 
            //Criando objeto MySqlDataAdapter
            MySqlDataAdapter objAdapter = new MySqlDataAdapter();
 
            //Efetuando conexão e executando Query no banco de dados
            objAdapter.SelectCommand = new MySqlCommand(strQuery, objConexao);
 
            //Criando objeto DataSet para trabalhar com os dados
            DataSet ds = new DataSet();
 
            //Preencher objeto Dataset
            objAdapter.Fill(ds);
 
            //Alocando referencia ao GridView
            gvResultado.DataSource = ds;
 
            //Preenchendo GridView
            gvResultado.DataBind();
 
            //Mostrando GridView
            gvResultado.Visible = true;
 
            //Encerramento dos Objetos
            ds.Dispose();
            objAdapter.Dispose();
            objConexao.Close();
            objConexao.Dispose();
        }
        catch (MySqlException err)
        {
	    //Em caso de erros, mostrar o erro no "label" indicado.
            lblErro.Text = err.Message;
        }
    }
</script>
 
<source lang="html4strict">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Exemplo</title>
  </head>
    <body>
      <form id="form1" runat="server">
        <div>
          Digite a instrução MySQL a ser executada:<br/>
          <asp:TextBox ID="txtQuery" runat="server" Height="136px" TextMode="MultiLine" Width="255px">Show Tables;</asp:TextBox>
          <br/>
          <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtQuery"
            ErrorMessage="Por favor, digite uma Query acima."></asp:RequiredFieldValidator><br />
          <br/>
          <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Enviar" /><br />
          <br/>
          <br/>
          <asp:GridView ID="gvResultado" runat="server" Visible="False"></asp:GridView>
          <br/>
          <br/>
          &nbsp;<asp:Label ID="lblErro" runat="server" ForeColor="Red"></asp:Label>
        </div>
      </form>
    </body>
</html>




Web.Config - Não esqueça de alocar a referencia de sua assembly no arquivo web.config. Dependendo da versão utilizada o código (PublicKeyToken) pode mudar um pouco. Recomendamos que verifique maiores informações com o fabricante. Segue um exemplo simples:

 

<?xml version="1.0"?>
<configuration>
 <system.web>
  <compilation debug="true">
   <assemblies>
    <add assembly="MySql.Data, Version=X.X.X.X, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
   </assemblies>
  </compilation>
  <customErrors mode="Off"/>
 </system.web>
</configuration>
  • A versão do componente utilizado deve ser verificado em sua aplicação, que deve ser correspondente a DLL referente ao MySql.Data alocado em sua aplicação.

ATENÇÃO
Caso sua aplicação de testes apresente erro do tipo:


The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?)

Isto significa que não há nenhum driver MySqlConnector padrão instalado no servidor. Neste caso, é necessário:

  • Acessar o site do MySqlConnector;
  • Baixar o driver mais atual do tipo "Windows Binaries, no installer (ZIP)" para sua máquina local;
  • Copiar os arquivos do tipo *.dll(MySql.Data.Dll, MySql.Web.Dll entre outros) para a pasta Bin da sua aplicação e efetuar novos testes;

 

Observações:

  • O MySqlConnector é o driver que apresenta melhor desempenho que outros tipos de conexão(MyODBC por exemplo).
  • Mais informações sobre o uso deste driver, recomendamos que verifique no site do fabricante. Além do download do driver, no site é possível verificar a documentação do produto, assim como as suas funcionalidades explicada de forma detalhada: http://www.mysql.com/products/connector/ .

 

  • O código de programação mencionado nesse artigo é uma sugestão. Contamos com sua compreensão para o fato de que a Locaweb não pode se responsabilizar por apresentar mais detalhes a respeito de sua implementação e utilização. Para mais informações, sugerimos que entre em contato com o seu desenvolvedor, pois tal conhecimento é aberto e de domínio de profissionais técnicos.

Veja também

Links