Utilizando o MySQL em C# e Asp.Net

Porque utilizar o MySQL no Asp.Net e C#?

Neste artigo iremos aprender a criar conexão utilizando Asp.Net e C# no banco de dados MySQL. O MySQL é um ótimo banco de dados, e o melhor, é gratuito! Não tem motivos para pagar uma hospedagem cara de banco de dados quando temos o MySQL.

Criando um banco de dados MySQL.

Para aprender como realizar a conexão iremos criar um banco de dados chamado clientes com os seguintes campos:

Campo:
Tipo:
Tamanho:

 

id
int
4

 

nome
varchar
50

 

email
varchar
20

 

telefone
varchar
15

 

cidade
varchar
30

 

Não esqueça que id deve ser auto_increment e primary_key.

Se você não souber como instalar o MySQL e criar um banco de dados como o descrito acima, clique aqui para ver o tutorial Instalando e administrando o MySQL.

Vamos inserir um cadastro nessa tabela para teste.

Abra o PhpMyAdmin, acessando http://localhost/phpmyadmin

Clique no Banco de dados clientes e na tabela cadastro, depois na guia Inserir. Preencha com seus dados e clique em Executar. Conforme imagem:

Cadastrando dados no MySQL

Vamos a conexão Asp.Net e C# com o MySQL em 3 passos:

1º passo, baixar o Connector.

Para conectar o MySQL no Asp.Net precisamos do MySQL Connector, clique aqui para baixar. Será necessário cadastro no site do MySQL. É só cadastrar e fazer download.

Importante: Baixe o driver “Windows Binaries, no installer (ZIP)”.

Descompacte os arquivos baixados.

2º passo, criar referência do Connector em sua aplicação.

Em sua aplicação, vamos adicionar referência ao MySQL, para isso, clique com o botão direito do mouse em cima da sua aplicação e em Add Reference… Conforme imagem:

Adicionando referencia a DLL do MySQL

Na janela de Ad Reference… selecione a guia Browse e localize a DLL mysql.data.dll, que está entre os arquivos descompactados do Connector.

Localizando referencia a DLL do MySQL

Feito isso, você verá a DLL na pasta Bin da sua aplicação pelo Solution Explorer, conforme imagem:

DLL do MySQL

3º passo, código.

Crie uma página chamada conexao.aspx na sua aplicação.

Arraste uma GridView para sua página:

GridView que será populada com o MySQL

E no Properties dê o nome a ela de gvClientes:

MySQL - Renomeando GridView

Abra o código C# da página e insira a referência para a DLL, conforme abaixo:

Código C#

using MySql.Data.MySqlClient;

Agora vamos criar a conexão e popular a GridView com os dados do MySQL:

Código C#

string sqlQuery = "SELECT * FROM cadastro ORDER BY Nome";
string conexao = "SERVER=localhost; DATABASE=clientes; UID=root; PASSWORD=;";

MySqlConnection objConexao = new MySqlConnection(conexao);

MySqlDataAdapter objAdapter = new MySqlDataAdapter();

objAdapter.SelectCommand = new MySqlCommand(sqlQuery, objConexao);

DataSet dSet = new DataSet();

objAdapter.Fill(dSet);

gvClientes.DataSource = dSet;

gvClientes.DataBind();

dSet.Dispose();
objAdapter.Dispose();
objConexao.Close();
objConexao.Dispose();

Explicação do código:

Linha 1:
Criamos a Query de conexão, no exemplo pegamos todos os dados(*) da tabela cadastros e ordenamos alfabeticamente pelo Nome.

Linha 2:
Montamos a conexão com o banco de dados, informando Server(servidor, no nosso caso localhost), database(banco de dados, no nosso caso clientes) UID(login, se você está utilizando o Xampp, conforme tutorial, o padrão é root) e Password(senha, padrão Xammp, nenhuma).

Linha 4:
Criamos o objeto MySqlConnection.

Linha 6:
Criamos o objeto MySqlDataAdapter.

Linha 8:
Efetuamos a conexão com o Mysql e executando Query no banco de dados.

Linha 10:
Criamos o objeto DataSet para trabalhar com os dados do MySQL.

Linha 12:
Preenchemos o objeto Dataset.

Linha 14:
Criamos o dataSource do GridView.

Linha 16:
Preenchemos o GridView com os resultados.

Linha 18 – 21:
Fechamos os objetos da conexão.

Pronto, agora é só executar a página e visualizar o resultado:

GridView populada com os dados do MySQL

32 Comentários


  1. Baixei o arquivo MySqlConnector no endereço indicado, entretando não há nenhuma dll nele. Já havia baixado a versão 6.3.7 que funcionou legal, mas essa…

    De qualquer forma, parabéns pelo post!

    Responder

  2. Cara, eu estava há horas tentando fazer isso, muito simples o seu exemplo, exatamente o que eu precisava!

    Muito Obrigado!!

    Responder

  3. Desenvolvi um site em ASP e coloquei no host, assim como o banco. PORÉM! quando acesso o domínio, os espaços que deveriam estar preenchidos por informações do banco, estão vazios. O que pode ser o erro?

    Responder

    1. Olá Ana. Você cadastrou as informações no banco de dados? está usando root como login e vazio como senha?

      Responder

  4. amigo ou eu sou muiito burro ou não consegui entender mais fiz exatamente e não rolou..
    o codigo C# da linha 1 a linha 21 eu coloco na page_load?? ou onde??

    Responder

    1. Olá Ricardo. Não desanime!
      O código pode ir no Page_Load ou pode chamar ele através de algum botão.
      Você está conseguindo até qual parte?
      Abraço.

      Responder

      1. deu pau nessa linha 12

        o erro é esse:
        CS0117: ‘ASP.conexao_aspx’ não contém uma definição para ‘gvClientes_SelectedIndexChanged’

        Responder

        1. Ricardo, no seu arquivo .aspx encontre a sua GridView e remova a referencia ao método “gvClientes_SelectedIndexChanged”.
          Provavelmente seu código estará assim:

          asp:GridView ID=”gvClientes” runat=”server” OnPageIndexChanged=”gvClientes_SelectedIndexChanged”>

          Remova a seguinte parte:
          OnPageIndexChanged=”gvClientes_SelectedIndexChanged”

          Abraço.

          Responder

  5. Quero fazer uma aplicação que quando digitar um palavra dentro de um textbox e quando clicar no botão de pesquisar, quero que mostre as informações da palavra informada. Como devo fazer essa consulta (select) no meu banco de dados phpmyadmin?

    Me ajudem galera..

    Responder

    1. Utilize a query “DELETE FROM cadastro”.
      Pode usar o WHERE para especificar qual cadastro deve ser deletado. Ex: “DELETE FROM cadastro WHERE id = ‘1’ “

      Responder

  6. Olá Cesar, aqui está dando um pequeno erro na linha 16, fala que o DataGridView não contém uma definição para DataBind, poderia me ajudar? Abraços!

    Responder

    1. Olá Coder. Por favor, poste o seu código para que eu possa ajudar. Abraço.

      Responder

  7. 1. No link que vc indicou para baixar, existem 2 arquivos. Qual é o certo ? Um é msi installer.

    2. Baixei todos e nenhum tem o arquivo mysql.data.dll

    Obrigado.
    Ricardo

    Responder

    1. Olá Ricardo Costa,

      Instale o MSI installer e o mysql.data.dll estará no caminho C:\Program Files\MySQL\MySQL Connector Net 6.0.7\Assemblies

      Espero ter ajudado!

      Abs,

      Marcelo

      Responder

  8. ola amigo esse seu exemplo é quase que preciso
    que eu necessito de um aplicativo que eu rode de qualquer pc.sem instalação de banco etc…
    que tenha tudo no aplicativo
    e preciso enviar as informaçoes para carregar em um banco de dados php my admin tem alguma ideia?
    Parabens pelo seu post

    Responder

  9. Sua dica me ajudou muito de forma simples e direta, nada de explicações com códigos complexos. Isso ajuda muito quem está começando. Aqui comigo Deu certo da primeira. Parabéns…

    Responder

  10. Ola. Como faço para usar parametro na minha consulta sql? Coloco assim “SELECT ctp_codigo, usu_codigo, ctp_descricao, ctp_titulo FROM contaspagar WHERE ctp_codigo=?codigo AND usu_codigo=?usu” e defino os parametros “Parameters.Add(“?cod”, conta.Codigo);” mas da erro, como se o parametro nao tivesse definido. Pode me ajudar?
    Obg

    Responder

  11. Cara so faltou vc mostrar a pagina com o codigo final, como sou iniciante não consigo fazer rodar pois não sei onde devo colocar o codigo, em qual ponto da pagina.

    Responder

  12. ola, legal o post.
    Teria como você me dizer como fica o código para inserir dados, pois tentei “myAdapter.InsertCommand = new MySqlCommand(“INSERT INTO tblCliente ……..)” e não funcionou, mas também não deu erro!

    Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*