Usuário com melhor resposta
Como fazer uma consulta Simples no banco.

Pergunta
-
Estou tentando fazer uma consulta bem simples no banco e não consigo de maneira alguma.
O que preciso fazer é o seguinte.
Tenho por exemplo, na tabela do banco de dados código, nome, telefone.
O que eu preciso fazer é conseguir consultar com o código, consultar o nome do registro, e não consigo.
O que fiz até agora foi:
private void btnAlterarCliente_Click(object sender, EventArgs e)
{
string teste;
conectBanco();
try
{
conexao.Open();
string fashionclientedbConsultaNome = "SELECT cod_Cliente, nome_Cliente * FROM fashionclientedb WHERE cod_Cliente = " + _Valor ;
MySqlDataAdapter conexaoAdapter = new MySqlDataAdapter(fashionclientedbConsultaNome, conexao);
conexaoAdapter.Fill(conexaoDataSet, "fashionclientedb");
edtNomeCliente.Text = ""; //Não tenho a menor ideia de como fazer.
conexao.Close();
conexao.Dispose();
}
catch
{
MessageBox.Show("Erro ao conectar com o banco!");
conexao.Close();
conexao.Dispose();
}Agradeço muito se alguém me ajudar.
Respostas
-
Segue um exemplo que encontrei na net.
http://www.macoratti.net/09/05/c_adn_4.htm
using System.Data; using System.Data.SqlClient; string connString = "Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=sa;Password=xxx" SqlConnection adoConn = new SqlConnection(connString); adoConn.Open(); // novo command string sql = "SELECT * FROM Tabela"; SqlCommand adoCmd = new SqlCommand(sql, adoConn); SqlDataReader adoDR = adoCmd.ExecuteReader(); if (adoDR.HasRows) { while (adoDR.Read()) { Response.Write(adoDR["0"].ToString()); } } adoDR.Close(); adoDR.Dispose(); adoCmd.Dispose(); adoConn.Close(); adoConn.Dispose();
- Marcado como Resposta Levi DomingosModerator quinta-feira, 10 de setembro de 2015 17:57
-
Primeiro sobre a Query: o "SELECT cod_Cliente, nome_Cliente * FROM fashionclientedb WHERE cod_Cliente = " + _Valor ;" - "fashionclientedb" é o nome do banco? Se for a consulta correta seria "nome do banco" ponto "nome da tabela" então seria "fashionclientedb.clientes" por exemplo.
Segundo, eu prefiro usar Adapter para consulta de tabelas para alimentar grids etc, para ler 1 linha da tabela eu faço a consulta com Reader ao invés de Adapter. Usando Reader você só tem que lembrar de dar Close() para não deixar-lo aberto ao final da consulta.
Minhas funções de consulta são:
public global::System.Data.DataTable ExecuteQueryOnAdapter(string Query, global::System.Data.MySql.MySqlConnection Conn) { if (Conn == null) { return null; } else { DataAdapter adapter = new DataAdapter(Query, Conn); Sys.Data.DataTable datas = new Sys.Data.DataTable(); try { adapter.Fill(datas); } catch { datas = null; } adapter.Dispose(); return datas; } } public global::System.Data.MySql.MySqlDataReader Read(string Query, global::System.Data.MySql.MySqlConnection Conn) { global::System.Data.MySql.MySqlCommand command = Conn.CreateCommand(); command.CommandText = Query; try { global::System.Data.MySql.MySqlDataReader Reader = command.ExecuteReader(); if (Reader != null) { if (!Reader.Read()) { Reader.Close(); Reader = null; } } return Reader; } catch { return null; } }
Se você usar a chamada do Reader basta associar:
global::System.Data.MySql.MySqlDataReader Reader = Read("SELECT * FROM fashionclientedb.clientes WHERE cod_Cliente = " + _Valor, conexao); edtNomeCliente.Text = Reader.GetString("nome_Cliente"); Reader.Close(); //ISSO É MUITO IMPORTANTE!!!
Se você usar o DataAdapter:
global::System.Data.DataTable Reader = ExecuteQueryOnAdapter("SELECT * FROM fashionclientedb.clientes WHERE cod_Cliente = " + _Valor, conexao); edtNomeCliente.Text = global::System.Convert.ToString((Reader.Rows[0])["nome_Cliente"]);
Pode ter algum erro de digitação nesses códigos porque escrevi meio que de cabeça, mas é isso.
- Editado SammuelMiranda quinta-feira, 10 de setembro de 2015 15:16
- Sugerido como Resposta SammuelMiranda quinta-feira, 10 de setembro de 2015 15:16
- Não Sugerido como Resposta Levi DomingosModerator quinta-feira, 10 de setembro de 2015 17:57
- Marcado como Resposta Levi DomingosModerator quinta-feira, 10 de setembro de 2015 17:57
Todas as Respostas
-
Tente o seguinte e veja se funciona.
conexaoDataSet.Tables(0).Rows(0)("nome_Cliente")
Se a resposta foi útil, favor não esquecer de votar.
- Editado FAS Automação Industrial quinta-feira, 10 de setembro de 2015 13:18
-
Segue um exemplo que encontrei na net.
http://www.macoratti.net/09/05/c_adn_4.htm
using System.Data; using System.Data.SqlClient; string connString = "Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=sa;Password=xxx" SqlConnection adoConn = new SqlConnection(connString); adoConn.Open(); // novo command string sql = "SELECT * FROM Tabela"; SqlCommand adoCmd = new SqlCommand(sql, adoConn); SqlDataReader adoDR = adoCmd.ExecuteReader(); if (adoDR.HasRows) { while (adoDR.Read()) { Response.Write(adoDR["0"].ToString()); } } adoDR.Close(); adoDR.Dispose(); adoCmd.Dispose(); adoConn.Close(); adoConn.Dispose();
- Marcado como Resposta Levi DomingosModerator quinta-feira, 10 de setembro de 2015 17:57
-
Primeiro sobre a Query: o "SELECT cod_Cliente, nome_Cliente * FROM fashionclientedb WHERE cod_Cliente = " + _Valor ;" - "fashionclientedb" é o nome do banco? Se for a consulta correta seria "nome do banco" ponto "nome da tabela" então seria "fashionclientedb.clientes" por exemplo.
Segundo, eu prefiro usar Adapter para consulta de tabelas para alimentar grids etc, para ler 1 linha da tabela eu faço a consulta com Reader ao invés de Adapter. Usando Reader você só tem que lembrar de dar Close() para não deixar-lo aberto ao final da consulta.
Minhas funções de consulta são:
public global::System.Data.DataTable ExecuteQueryOnAdapter(string Query, global::System.Data.MySql.MySqlConnection Conn) { if (Conn == null) { return null; } else { DataAdapter adapter = new DataAdapter(Query, Conn); Sys.Data.DataTable datas = new Sys.Data.DataTable(); try { adapter.Fill(datas); } catch { datas = null; } adapter.Dispose(); return datas; } } public global::System.Data.MySql.MySqlDataReader Read(string Query, global::System.Data.MySql.MySqlConnection Conn) { global::System.Data.MySql.MySqlCommand command = Conn.CreateCommand(); command.CommandText = Query; try { global::System.Data.MySql.MySqlDataReader Reader = command.ExecuteReader(); if (Reader != null) { if (!Reader.Read()) { Reader.Close(); Reader = null; } } return Reader; } catch { return null; } }
Se você usar a chamada do Reader basta associar:
global::System.Data.MySql.MySqlDataReader Reader = Read("SELECT * FROM fashionclientedb.clientes WHERE cod_Cliente = " + _Valor, conexao); edtNomeCliente.Text = Reader.GetString("nome_Cliente"); Reader.Close(); //ISSO É MUITO IMPORTANTE!!!
Se você usar o DataAdapter:
global::System.Data.DataTable Reader = ExecuteQueryOnAdapter("SELECT * FROM fashionclientedb.clientes WHERE cod_Cliente = " + _Valor, conexao); edtNomeCliente.Text = global::System.Convert.ToString((Reader.Rows[0])["nome_Cliente"]);
Pode ter algum erro de digitação nesses códigos porque escrevi meio que de cabeça, mas é isso.
- Editado SammuelMiranda quinta-feira, 10 de setembro de 2015 15:16
- Sugerido como Resposta SammuelMiranda quinta-feira, 10 de setembro de 2015 15:16
- Não Sugerido como Resposta Levi DomingosModerator quinta-feira, 10 de setembro de 2015 17:57
- Marcado como Resposta Levi DomingosModerator quinta-feira, 10 de setembro de 2015 17:57