Face a alguns solicitações criei um exemplo muito simples e rápido de como mostrar dados vindos do Mysql numa DataGridView usando a linguagem c#.
Neste exemplo o objectivo vai ser apenas fazer uma Ligação há base de dados Mysql e devolver os dados de uma tabela e mostrar numa DataGridView.
Para começar certifique-se que tem instalado o conector Mysql para .net , se não o tiver vá á pagina do Mysql Connector/Net e faça o download do mesmo e a sua respectiva instalação.
Agora vamos cria o nosso projecto do tipo “Windows Forms Application” e acrescentamos uma classe que eu vou chamar “MysqlDataLayer” mas o nome é o que entender esta classe vai servir para escrever as funções para conectar a base de dados e fazer a consulta sql a uma tabela.
De seguida vamos adicionar a referencia do conector Mysql .net ao nosso projecto ,basta para isso fazer clique com o terceiro botão na nossa árvore da aplicação e escolher “Add Rerence..” como exemplificado na primeira imagem, será então aberta uma nova janela e no separador “.net” escolha o componente “MySql.Data” .
Adicionada a referencia vamos então ao código e no código temos de criar uma ligação,fazer uma consulta a base de dados guardar os dados da consulta na num objecto e finalizar fechando a ligação e devolvendo os dados ,o código poderá ser algo do género:
class MysqlDataLayer
{
private MySqlConnection connection;
private string server;
private string database;
private string userName;
private string password;
public MysqlDataLayer(string server,string database,string userName,string password)
{
this.server =server;
this.database = database;
this.userName = userName;
this.password = password;
string connStr = String.Format("server={0};uid={1};pwd={2};database={3}", server, userName, password, database);
connection = new MySqlConnection(connStr);
}
/// <summary>
/// Abre Conecção com a base de dados
/// </summary>
/// <returns>True/False</returns>
private bool OpenConnection()
{
try
{
if (connection.State != ConnectionState.Open)
connection.Open();
return true;
}
catch (MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("Não é possivel conectar com o servidor");
break;
case 1045:
MessageBox.Show("Utilizador invalido verifique o username e/ou a password");
break;
}
return false;
}
}
/// <summary>
/// Executa Comendo Sql de seleção de campos de uma tabela
/// </summary>
/// <param name="tabela">Nome da tabela a Selecionar</param>
/// <returns>DataTable com o resultado da Consulta</returns>
public System.Data.DataTable getDadosTabela(string tabela)
{
System.Data.DataTable dt = new System.Data.DataTable();
if (this.OpenConnection() == true)
{
try
{
//Cria Comando Sql
string selectCommand = string.Format("Select * from {0}", tabela);
MySqlDataAdapter adapter = new MySqlDataAdapter(selectCommand, connection);
dt = new System.Data.DataTable("Tabela");
//Preenche a DataTable com os dados do adaptar
adapter.Fill(dt);
}
catch (MySqlException ex)
{
dt = null;
MessageBox.Show(ex.Message);
}
finally
{
//Fecho Connecção
this.CloseConnection();
}
}
return dt;
}
/// <summary>
/// Fecha Coneção com a base de dados Mysql
/// </summary>
/// <returns></returns>
private bool CloseConnection()
{
try
{
if (connection.State == ConnectionState.Open)
connection.Close();
return true;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
}
Agora só nos falta acrecentar uma DataGridView ao nosso formulario inicial e a um butão cujo o evento click vai preencher a nossa dataGrid View :private void btnMostraDados_Click(object sender, EventArgs e)
{
MysqlDataLayer mysqlDL = new MysqlDataLayer("localhost", "geoip", "teste", "teste");
dataGridViewMysql.DataSource = mysqlDL.getDadosTabela("cc");
}
No meu caso eu utilizei a mesma base de dados que no Mysql que pode fazer sacar neste Post e tenho um utilizador “teste” com a password também “teste” e faço pesquisa a tabela “cc”.Download do Exemplo :
Sem comentários:
Enviar um comentário