Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Dúvidas sobre Database, Datagridview e Querys.....

$
0
0
Aqui tens um exemplo usando o DataReader e personalizando headers da grid bem com os valores a retornar Este exemplo usa como baseDados o access mas no MySql é idêntico so tens de trocar o OLEBD.. por MySql... Confere os comentários para veres a razão de eu usar este método, desculpa a query e campos serem estes mas peguei num projecto meu para te ajudar // Listagem das aves public void aves(int id = 0, string sexo = "") { dataGridView1.DataSource = null; DataRow row = null; string query = "SELECT * FROM Aves "; if(sexo !="") { query += " WHERE sexo = "; switch (sexo) { case "M": query += "M"; break; case "F": query += "F"; break; } } if (id != 0) { query += " AND id = @id;"; } DataTable dt = new DataTable(); try { using (OleDbConnection con = new OleDbConnection(cfg.connectionString)) // Este constring é a string de ligar a base de dados { using(OleDbCommand cmd = new OleDbCommand( query, con)) { con.Open(); if (id != 0) { cmd.Prepare(); cmd.Parameters.AddWithValue("@id", id); } OleDbDataReader reader = cmd.ExecuteReader(); List<string> t = new List<string>() { "id", "Mutação", "Anilha", "Ano", "Sexo"}; DataColumn detalhes = new DataColumn("detalhes", typeof(Bitmap)); dt.Columns.Add(detalhes); foreach (string h in t) { dt.Columns.Add(h); } while (reader.Read()) { row = dt.NewRow(); Bitmap ver = new Bitmap(MS_ACESS.Properties.Resources.property); // Imagem para clicar row[0] = ver; row[1] = reader["id"]; row[2] = reader["mutacao"]; row[3] = reader["anilha"]; row[4] = reader["ano"]; row[5] = funcao.GetSexo(Convert.ToChar(reader["sexo"])); // usar funções personalizadas para apresentar texto no lugar de numeros que niguem sabe de que são e a que corresponde dt.Rows.Add(row); } dataGridView1.DataSource = dt; this.dataGridView1.Columns["id"].Visible = false; // Esconder id this.dataGridView1.Columns["detalhes"].FillWeight = 15; // Limitar tamanho da header para o que pretenderes this.dataGridView1.Columns["detalhes"].HeaderText = ""; // Esconder texto header (caso pretendas usar imagem) } con.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } }

Viewing all articles
Browse latest Browse all 11336

Trending Articles