ASP .NET - Acessando o MySQL
Que tal acessar uma tabela de um banco de dados MySQL e exibir os dados em uma página ASP.NET ?
Neste artigo vou mostrar como acessar tabelas em um banco de dados MySQL usando C#.
Para ter sucesso nesta empreitada você vai precisar dos seguintes componentes :
1-) O banco de dados MySQL 4.0 - download em - http://www.mysql.com/downloads/
2-) O driver ODBC para o MySQL - MySQL Connector/ODBC 3.51 - download em - http://www.mysql.com/downloads/api-myodbc-3.51.html
3-) Uma interface amigável para facilitar criar tabelas e inserir registros - MyTool.exe - download em - http://www.icarz.com/mysql/
Opcionalmente se você quiser ter uma ferramenta para criar conexõe e administrar o MySQL pode pegar o MySQL Administrator - download - http://www.mysql.com/downloads/administrator.html
Supondo que você pegou o enxoval necessário , fez a instalação de cada um deles , e que tudo esta funcionando corretamente vamos para a próxima etapa.
Nota: Para permitir transações (embora neste exemplo eu não vou usá-las) você deve substituir o arquivo my.ini padrão pelo seguinte código : (para este artigo você pode usar o arquivo my.ini padrão)
[client] port=3306 [mysqld] port=3306 skip-locking set-variable = max_connections=64 set-variable = read_buffer_size=1M set-variable = key_buffer=8M set-variable = max_allowed_packet=1M set-variable = table_cache=64 set-variable = sort_buffer=512K set-variable = net_buffer_length=8K set-variable = myisam_sort_buffer_size=4M server-id = 1 basedir = C:/MySQL/ datadir = C:/MySQL/data/ skip-bdb innodb_data_file_path = ibdata1:10M:autoextend set-variable = innodb_buffer_pool_size=32M set-variable = innodb_additional_mem_pool_size=4M set-variable = innodb_log_file_size=8M set-variable = innodb_log_buffer_size=8M innodb_flush_log_at_trx_commit=1 [mysqldump] quick set-variable = max_allowed_packet=8M [mysql] no-auto-rehash [isamchk] set-variable = key_buffer=10M set-variable = sort_buffer=10M set-variable = read_buffer=2M set-variable = write_buffer=2M [myisamchk] set-variable = key_buffer=10M set-variable = sort_buffer=10M set-variable = read_buffer=2M set-variable = write_buffer=2M [mysqlhotcopy] interactive-timeout |
Neste arquivo estamos configurando o MySQL para iniciar o serviço : mysqld -max -nt.
Quando você instala o MySQL são criados dois banco de dados : mysql e test , conforme abaixo:
O banco de dados mysql já vem com algumas tabelas enquanto o banco de dados test vem vazio. Eu vou usar o banco de dados test e criar nele uma tabela chamada clientes com a seguinte instrução SQL :
Instrução SQL para criar a tabela Clientes no banco de dados test do MySQL:
CREATE
TABLE Clientes ( Codigo INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Nome TINYTEXT NOT NULL, Endereco TINYTEXT NOT NULL, Telefone TINYTEXT NOT NULL, Email TINYTEXT NOT NULL, Nascimento TINYTEXT NOT NULL ); |
Abaixo a figura exibindo a interface da ferramenta MyTool.exe onde podemos criar tabelas e inserir , deletar e atualizar registros no MySQL.
A seguir vamos incluir alguns registros na tabela usando a instrução SQL - INSERT INTO conforme mostrado na figura abaixo:
Abaixo a tabela Clientes com 3 registros incluídos.
O próximo passo é criar uma página ASP.NET , que no meu caso vai ser chamada de - MySQLNet.aspx . Para isto você pode usar o Visual Studio , mas eu vou usar o Web Matrix .
Inicie o Web Matrix (na combo Language escolha C#) e informe o nome da página conforme acima e na guia Design insira um componente DataGrid conforme a figura abaixo:(a configuração de cores e aparência do grid fica a seu critério)
O código para o DataGrid acima exibido na guia HTML é o seguinte :
<html> <head> <title>Exibindo registros da tabela 'Clientes' no MySQL</title> <style>BODY { FONT: 100% Verdana } </style> </head> <body> <p align="center"> <b>Registros na tabela Clientes do banco de dados Test do MySQL</b> : </p> <asp:DataGrid id="dgrAllNames" Runat="server" CellPadding="3" HorizontalAlign="Center" ForeColor="Blue" BackColor="#FFFFC0"> <FooterStyle backcolor="#FFE0C0"></FooterStyle> <HeaderStyle forecolor="#0000C0" backcolor="#FFE0C0"></HeaderStyle> </asp:DataGrid> </body> </html> |
finalmente o script ASP.NET em C# exibido na guia Code:
private
const string ConnStr = "Driver={MySQL ODBC 3.51
Driver};" + "Server=localhost;Database=test;uid=root;pwd=;option=3"; protected override void OnInit(EventArgs e) { base.OnInit(e); using(OdbcConnection con = new OdbcConnection(ConnStr)) using(OdbcCommand cmd = new OdbcCommand("SELECT * FROM clientes", con)) { con.Open(); dgrAllNames.DataSource = cmd.ExecuteReader( CommandBehavior.CloseConnection | CommandBehavior.SingleResult); dgrAllNames.DataBind(); } } |
Versão VB .NET
A versão do código acima para VB.NET , obtido no site - http://authors.aspalliance.com/aldotnet/examples/translate.aspx - é dada abaixo: (O código HTML praticamente não sofre alterações.)
Const
ConnStr As String = "Driver={MySQL ODBC 3.51 Driver};" + "Server=localhost;Database=test;uid=root;pwd=;option=3" Protected Overrides Sub OnInit(e As EventArgs) MyBase.OnInit(e) Dim con As New OdbcConnection(ConnStr) Try Dim cmd As New OdbcCommand("SELECT * FROM clientes", con) Try con.Open() dgrAllNames.DataSource = cmd.ExecuteReader((CommandBehavior.CloseConnection Or CommandBehavior.SingleResult)) dgrAllNames.DataBind() Finally cmd.Dispose() End Try Finally con.Dispose() End Try End Sub 'OnInit |
Abaixo o código completo da página MySQLNet.aspx
<%@
Page Language="C#"
autoeventwireup="False"
EnableSessionState="False"
EnableViewState="False" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.Odbc" %> <script runat="server"> private const string ConnStr = "Driver={MySQL ODBC 3.51 Driver};" + "Server=localhost;Database=test;uid=root;pwd=;option=3"; protected override void OnInit(EventArgs e) { base.OnInit(e); using(OdbcConnection con = new OdbcConnection(ConnStr)) using(OdbcCommand cmd = new OdbcCommand("SELECT * FROM clientes", con)) { con.Open(); dgrAllNames.DataSource = cmd.ExecuteReader( CommandBehavior.CloseConnection | CommandBehavior.SingleResult); dgrAllNames.DataBind(); } } </script> <html> <head> <title>Exibindo registros da tabela 'Clientes' no MySQL</title> <style>BODY { FONT: 100% Verdana } </style> </head> <body> <p align="center"> <b>Registros na tabela Clientes do banco de dados Test do MySQL</b> : </p> <asp:DataGrid id="dgrAllNames" Runat="server" CellPadding="3" HorizontalAlign="Center" ForeColor="Blue" BackColor="#FFFFC0"> <FooterStyle backcolor="#FFE0C0"></FooterStyle> <HeaderStyle forecolor="#0000C0" backcolor="#FFE0C0"></HeaderStyle> </asp:DataGrid> </body> </html> |
Executando a página no próprio servidor Web Matrix teremos o resultado abaixo.
Acabamos de acessar um banco de dados MySQL e exibindo o resultado de uma consulta SQL em uma página ASP.NET com C# e VB.NET.
Até o próximo artigo ...
João 4:34 Disse-lhes Jesus: A minha comida é fazer a vontade daquele que me enviou, e completar a sua obra.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
MySQL - Vinculando , Importando e Exportando tabelas do Access
Visual Basic - Acessando MySQL com ADO usando um Driver ODBC