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