ASP.NET com MySql

Existe hoje em dia vários tipos de banco de dados, mais nenhum deles me agrada mais que o MySql.
Quando iniciei meu aprendizado em asp (vbscript), utilizava muito o Access, mais isso até conhecer o MySql que também foi minha escolha por ser um banco de dados gratuito e que esta disponível gratuitamente na maioria dos serviços de hospedagem. Minha escolha não foi só por isso, escolhi também por sua robustez, qualidade e facilidade de gerenciamento.

A um pouco mais de 1 ano iniciei o meu estudo com ASP.NET e não poderia deixar por menos, corri atrás de procurar informações sobre a utilização do MySql no ASP.NET e fui feliz. Hoje todas as minhas aplicações, seja ela desktop ou web são utilizando o MySql, ao contrario de muitos outros profissionais que preferem o Sql Server Express ou Firebird (tem suporte também que eu saiba para aplicações Windows Form).

Para utilizar o MySql, teremos duas opções de drive para conexão:

  1. MySQL Connector/ODBC 5.1
  2. Connector/Net 5.2

Particularmente prefiro a segunda opção. Então vamos colocar a mão na massa.

Faça o download do Drive Connector.NET 5.2 e instale que é o que eu mais indico por sua classes e métodos serem muito semelhantes aos drives do Sql Server e Oracle.

Você ira precisar instalar mais 2 ferramentas essenciais, o MySQL Administrator e MySQL Query Browser, além é claro do próprio MySql Server. Mais como não é o foco do artigo, não abordarei o passo a passo da instalação que alias é bem mais simples que os demais. Mais segue os links abaixo.

Depois de ter instalado o MySql Server, o Administrator e o Query Browser vamos iniciar um novo projeto no Visual Studio do tipo WebForm ASP.NET.

No Solution Explorer do Visual Studio, vamos adicionar a dll do MySql ao projeto que nos dará suporte a ele em nosso WebForm. Com o botão direito em no Project do Solutions Explorer e clique na opção Add Reference…

Será aberto um nova janela onde iremos escolher a tab Browse e selecionaremos a dll do MySql Connector.NET que foi instalado. No meu caso o caminho é C:\Arquivos de programas\MySQL\MySQL Connector Net 5.2.2\Binaries\.NET 2.0\MySql.Data.dll.

Agora iremos crie um novo banco de dados e a tabela no MySql e para isso abra o Query Browser e execute o script abaixo.


CREATE DATABASE `dbalbuns`

CREATE TABLE  `dbalbuns`.`albuns` (
  `idalbum` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `titulo` varchar(100) DEFAULT NULL,
  `descricao` varchar(100) DEFAULT NULL,
  `preco` decimal(18,2) DEFAULT '0.00',
  PRIMARY KEY (`idalbum`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Criamos então no nosso banco de dados dbalbuns com a tabela albuns.

Vamos inserir alguns dados para que possamos começar a criar nosso exemplo.


insert into albuns(titulo, descricao, preco)
      values('Armandinho', 'Reggae', 30.99);
insert into albuns(titulo, descricao, preco)
      values('Tom Jobim', 'MPB', 43.56);
insert into albuns(titulo, descricao, preco)
      values('Nirvana', 'Rock', 27.90);

Volte ao Visual Studio e vamos adicionar um Grid na página Default.aspx

Abra o Code Behind do WebForm Default.aspx e declare o namespace do MySql


using MySql.Data.MySqlClient;

E vamos adicionar o código abaixo no Page_Load


protected void Page_Load(object sender, EventArgs e)
{
    string connectionString = "server=localhost;uid=root;pwd=123456;database=dbalbuns";

    MySqlConnection conn = new MySqlConnection(connectionString);
    MySqlCommand cmd = new MySqlCommand();
    cmd.CommandText = "select * from albuns";
    cmd.Connection = conn;

    DataTable dt = new DataTable();
    MySqlDataAdapter da = new MySqlDataAdapter(cmd);
    da.Fill(dt);

    GridView1.DataSource = dt;
    GridView1.DataBind();
}

Se executarmos o nosso projeto, ira aparecer nosso WebForm no browser com os dados que cadastramos no MySql.

Podemos ainda dar uma incrementada no visual do nosso Grid.


É isso ai. Agora é por sua conta explorar um pouco mais da robustez do MySql com a facilidade do ASP.NET

Dúvidas? Deixe seu comentário!

Abraço e sucesso!!!

15 thoughts on “ASP.NET com MySql”

  1. Parabéns, fiquei 2 semanas procurando um código simples que listasse meus dados do mysql e finalmente consegui um, estou migrando do VB.NET pra C.NET e vcs me ajudaram muito com a explicação acima!

  2. CARA, VC É O CARA!!!

    SIMPLES, CURTO, OBJETIVO E FUNCIONAL…..

    MERECE OS PARABÉNS!!!

    BRIGADO, SALVOU MINHA VIDA….

  3. Olá amigo, vc me ajudou a decidir o banco a ser usando em meu aprendizado, gostaria de poder contar com vc daqui por diante ($), entre em contato se for de seu interesse!

  4. cara seria interessante vc disponibilizar tbm como inserir,deletar e atualizar dados usando c sharp + asp.net com o banco de dados mysql
    muito bom teu site cara

  5. HUm…pois é, mas como faria se eu quisesse usar isso num projeto grande?

    Toda pagina eu teria que ter no Page_Load a string de conexão do MySQL??

    1. David

      Basta criar uma classe e fazer as implementações necessarias para retornar os dados.
      Quanto a ConnectionString, você poderá mante-la no Web.config da aplicação e consulta-la sempre que necessario.

  6. Raphael Cardoso

    Como assim?
    Eu preciso criar uma aplicação Web que tem, por exemplo, 2 opções na tela: Listar Todos os Clientes e/ou listar apenas os que estao
    com pagamentos aberto.

    Eu criaria uma Classe com um metodo contrutor que se encarregasse de abrir a conexão e me retornar o resultado da Query (recebida via parametro)?

    Aí cada consulta ao banco eu chamaria essa classe? Ou seja, a cada consulta ele ia abrir e fechar a conexão com o Banco?

    Obrigado!

    1. Sim, é isso mesmo.
      Você vai criar um metodo para listar todos os clientes e outro listar apenas os que estao
      com pagamentos aberto. Esses metodos deverão ser publicos.
      Nessa mesma classe você vai fazer todas as implementações necessarias para abrir, utilizar e fechar conexão com o banco de dados.
      Para utilizar você irá instanciar a classe nas paginas necessarias.

  7. Galera… fiz exatamente o que ta no tutorial.. porem da o erro An unhandled exception of type ‘System.StackOverflowException’ occurred in System.Data.dll… alguel sabe o que é isso ?

  8. Raphael, estou com dúvida em fazer a inserção de dados de campos da pagina aspnet no banco mysql , poderia dar exemplo da estrutura ? Obrigado.

Os comentários estão fechados.