-
C# - Acessando MySQL
Vamos acessar o MySQL usando C# ? Então vamos lá...
Eu vou usar os seguintes recursos:
1- MySQL 5.0 (Comunity Server) - Baixe e instale usando as configurações padrão sugeridas pelo assistente de instalação;
2- MySQL Administrator e MySQL Query Browser - Baixe e instale usando o assistente;
3- SharpDevelop 2.2 ou Visual C# Express Edition
Para efetuar a conexão usando C# vamos usar provedor ADO .NET para MySQL :
4- Download Connector/Net 5.1 (Podemos usar também a versão 5.2)
Criando o banco de dados e a tabela
Após fazer o download e instalar as ferramentas indicadas vamos criar um novo banco de dados chamado Cadastro no MySQL.
Abra o MySQL Administrator e clique em Catalogs;
A seguir clique com o botão direito do mouse na área onde são exibidos os banco de dados e selecione Create New Schema;
Informe o nome do banco de dados e a seguir clique no botão Create Table;
A seguir informe o nome da tabela Clientes e defina as colunas: id , nome, endereço e email conforme abaixo;
![]() |
Para incluir alguns dados na tabela abra o MySQL Query Browser e digite a instrução INSERT INTO conforme figura abaixo e clique em Execute;
INSERT INTO Clientes(nome,endereco, email) values ('Janice', 'Pça da Luz, 54', 'janice@bol.com.br')
O campo id foi definido como chave primária e incremental de forma que o seu valor é atribuído pelo MySQL;
![]() |
Ao final teremos o banco de dados Cadastro e a tabela Clientes com alguns dados no MySQL. Estamos prontos para começar.
Vamos agora criar uma nova solução chamada MySQLExemplo usando o SharpDevelop.
Abra o SharpDevelop e no menu Arquivo selecione Novo e em seguida Solução;
Na janela Novo Projeto selecione C#->Aplicações Windows e na janela Modelos marque Aplicação Windows e informe o nome da solução , no meu caso: MySQLExemplo;
![]() |
No formulário padrão MainForm.cs vamos incluir um controle DataGrid a partir da guia Data na janela de Ferramentas:
![]() |
Na janela de código vamos primeiro declarar os namespaces:
using
System.Data;
A seguir vamos incluir o código para
fazer a conexão com o banco de dados Cadastro no MySQL , acessar a tabela
Clientes e exibir os seus dados no DataGrid;
public class MainForm : System.Windows.Forms.Form { private System.Windows.Forms.DataGrid mDataGrid;
private MySqlConnection mConn; private MySqlDataAdapter mAdapter; private DataSet mDataSet; public MainForm() {
InitializeComponent();
mDataSet = new
DataSet(); //define string de conexao e cria a conexao mConn = new MySqlConnection(" Persist Security Info=False;server=localhost;database=Cadastro;uid=root; server=localhost;database=Cadastro;uid=root;pwd=xxxx");
//abre a conexao mConn.Open(); } catch(System.Exception e) { MessageBox.Show(e.Message.ToString()); }
//verificva se a conexão esta aberta if (mConn.State == ConnectionState.Open) { //cria um adapter usando a instrução SQL para acessar a tabela Clientes mAdapter = new MySqlDataAdapter("SELECT * FROM Clientes", mConn); //preenche o dataset via adapter mAdapter.Fill(mDataSet, "Clientes"); //atribui a resultado a propriedade DataSource do DataGrid mDataGrid.DataSource = mDataSet; mDataGrid.DataMember = "Clientes"; } } |
No código acima eu vou falar um pouco sobre a string de conexão usada. Ele é definida dessa forma para o provedor MySQL Connector/Net (.NET).
mConn = new
MySqlConnection(
Persist Security Info=False;
"Server=localhost;" +
"DataBase=Cadastro;"+
"Uid=root;" +
"Pwd=xxx;");
Um objeto MySqlConnection representa uma sessão para uma fonte de dados MySQL. Quando criamos uma instância MySqlConnection todas as propriedades são definidas para os seus valores iniciais. A seguir temos os valores padrão no construtor:
Propriedades | Valor Inicial |
ConnectionString
|
empty string ("") |
ConnectionTimeout
|
15 |
Database
|
empty string ("") |
DataSource
|
empty string ("") |
ServerVersion
|
empty string ("") |
O atributo Persist Security Info para uma string de conexão especifica se a fonte de dados pode persistir uma informação segura como as credenciais de autenticação do usuário. O valo padrão é mantido como False.
Se Persist Security Info for definido como False e a conexão foi aberta , o valor retornado pela string de conexão não irá exibir a chave nem a senha.
Se o valor for definido como True a informação da conexão - incluindo a senha - pode ser obtida pela consulta a conexão , permitindo assim uma forma de acesso não confiável as informações do usuário quando a conexão for persistida.
A propriedade Server(DataSource) indica o nome ou endereço de rede da instância do MySQL com o qual será feita a conexão. Múltiplas instâncias podem ser definidas separadas por &.
A propriedade DataBase define o
nome do banco de dados atual a ser usado após a conexão ser aberta. Ela não é
atualizada dinamicamente, desta forma, se você alterar o banco de dados usando
uma instrução SQL poderá ocorrer um erro. Para alterar o banco de dados use o
método ChangeDataBase para refletir o novo banco de dados.
A propriedade Uid representa
a conta que será usada para acessar o MySQL.
A propriedade Pwd representa a
senha da conta que esta sendo usada para o login no MySQL.
Após encerrar o
trabalho com a conexão o objeto MySqlConnection não é fechado, e , por
isso você deve fechar a conexão explicitamente chamando
MySqlConnection.Close ou MySqlConnection.Dispose.
Para fechar a conexão sobrescrevemos o
método Dispose conforme abaixo:
protected override void Dispose(bool disposing){ if (disposing) { if (mConn.State == ConnectionState.Open) { mConn.Close(); } } base.Dispose(disposing); } |
Ao usar o comando Open o
MySqlConnection tenta obter uma conexão a partir do
pool de conexão , se não existir uma conexão disponível, será
estabelecida uma nova conexão com uma instância do MySQL.
mConn.Open();
Ao executar o projeto iremos obter o
seguinte resultado no controle DataGrid;
Este foi apenas uma pequena introdução ao acesso a dados com MySQL e C#. Aguarde em breve artigos mais avançados...
Um bom estudo para você...
Pegue o
projeto completo aqui:
MySQLExemplo.zip
Eu sei é apenas C# mas eu gosto...
referências:
José Carlos Macoratti