Usuário com melhor resposta
preencher datagridview com SqlDataReader

Pergunta
-
meu datagrid está iniciando vazio, como faço p/ preenche-lo?
grato<strong> private SqlConnection conexao = new SqlConnection("strConection"); conexao.Open(); //criando o select e o objeto de consulta string sql = "select * from clientes"; SqlCommand cmd = new SqlCommand(sql, conexao); cmd.Connection = conexao; cmd.CommandText = sql; SqlDataReader reader = cmd.ExecuteReader(); dataGridView1.DataSource = reader; reader.Close(); conexao.Close();</strong>
Respostas
-
Seu código deve ficar mais ou menos assim:
// varre as linhas... while (reader.Read()) { // monta o array de valores... object[] values = new object[reader.FieldCount]; // adiciona as colunas no grid... if (grid.Rows.Count == 0) for (int i = 0; i < reader.FieldCount; i++) grid.Columns.Add(reader.GetName(i), reader.GetName(i)); // varre as colunas para preencher os valores... for (int i = 0; i < reader.FieldCount; i++) values[i] = reader.GetValue(i); // adiciona no grid... grid.Rows.Add(values); }
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)- Marcado como Resposta rschwalbe quarta-feira, 6 de outubro de 2010 19:28
Todas as Respostas
-
Você tem que usar um DataAdapter para isto:
private SqlConnection conexao = new SqlConnection("strConection"); conexao.Open(); //criando o select e o objeto de consulta string sql = "select * from clientes"; SqlCommand cmd = new SqlCommand(sql, conexao); cmd.Connection = conexao; cmd.CommandText = sql; // cria o dataadapter... SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = cmd; // preenche o dataset... DataSet dataSet = new DataSet(); adapter.Fill(dataSet); dataGridView1.DataSource = dataSet; dataGridView1.DataMember = dataSet.Tables[0].TableName; conexao.Close();
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono) -
-
Para você usar o datareader, você terá que preencher o grid não mão.
Então se você quiser utiliza-lo, você terá que manualmente, percorrer todas as linhas e colunas do resultado e adiciona-lo no seu grid.
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono) -
Seu código deve ficar mais ou menos assim:
// varre as linhas... while (reader.Read()) { // monta o array de valores... object[] values = new object[reader.FieldCount]; // adiciona as colunas no grid... if (grid.Rows.Count == 0) for (int i = 0; i < reader.FieldCount; i++) grid.Columns.Add(reader.GetName(i), reader.GetName(i)); // varre as colunas para preencher os valores... for (int i = 0; i < reader.FieldCount; i++) values[i] = reader.GetValue(i); // adiciona no grid... grid.Rows.Add(values); }
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)- Marcado como Resposta rschwalbe quarta-feira, 6 de outubro de 2010 19:28
-