Usuário com melhor resposta
Select retornar um dado num textbox

Pergunta
-
E aí pessoal, blz pura?
Gente sou novato em programação e estou precisando muito da ajuda de vc´s.
Estou querendo fazer um select no banco Access onde ele irá buscar o cpf da pessoa e retornar seu nome preenchendo um textbox.
Já fiz isso mas ele só me retorna o ultimo dado do meu banco. O que será que estou fazendo de errado?
Segue o código.
String _connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\herbert.freitas.MTE\Documents\clientes.accdb";
OleDbConnection _connection = new OleDbConnection(_connectionString);
OleDbCommand _command = new OleDbCommand("select Nome From clientes Where (ID = id)", _connection);
OleDbDataReader rdr = null;
_connection.Open();
rdr = _command.ExecuteReader();
while (rdr.Read())
{
resultnome.Text = rdr["Nome"].ToString();
}
rdr.Close();
_connection.Close();
Agradeço a todos antecipadamente.
Respostas
-
Isto esta mal: OleDbCommand _command = new OleDbCommand("select Nome From clientes Where (ID = id);
Voce precisa um parametro no teu comando.
Faz assim: OleDbCommand _command = new OleDbCommand("select Nome From clientes Where ID =@id);
_command.parameters.addwithvalue("@id", textboxcpf.text);
OleDbDataReader rdr = null;
_connection.Open();
rdr = _command.ExecuteReader();
while (rdr.Read())
{
resultnome.Text = rdr["Nome"].ToString();
}
rdr.Close();
_connection.Close();
Se o amor fosse pecado, quem seria INOCENTE?
- Marcado como Resposta Herbert Freitas quarta-feira, 18 de abril de 2012 16:10
Todas as Respostas
-
OleDbCommand _command = new OleDbCommand("select Nome From clientes Where (ID = id) ORDER BY (nome da coluna que você quer)", _connection);
Att. Lucas Rodrigues
- Editado Lucas Oliveira Rodrigues terça-feira, 17 de abril de 2012 18:45
-
-
-
select Nome From clientes Where (ID = @id)
_command.Parameters.AddWithValue("@id","1")
- Editado Vitor dos Santos terça-feira, 17 de abril de 2012 19:59
- Sugerido como Resposta Rodrigo Sória terça-feira, 17 de abril de 2012 20:10
-
amigo, o seu problema é no comando sql. Você não está concatenando a variável 'ID' no seu código... voce está fazendo um select que retorne todos os clientes se a coluna ID for igual a coluna ID, preste atenção e verá! Dai o comando traz todos os clientes do banco, voce faz um Loop em todos os cliente e é obvio que o ultimo cliente sempre vai ficar por ultimo. Jogue o ID do cliente em uma variavel e depois concatene no comando.
Se o ID for numérico faça seu comando assim:
decimal VariavelID = 1234;
OleDbCommand _command = new OleDbCommand("select Nome From clientes Where (ID =" + VariavelID + ")", _connection);
Se o ID do cliente for string faça assim (a diferença é que esse tem aspas simples nas extremidades da variável):
string VariavelID = "1234";
OleDbCommand _command = new OleDbCommand("select Nome From clientes Where (ID = '" + VariavelID + "' )", _connection);
Se solucionou não esqueça de marcar ;)
- Editado Renato Coqueiro terça-feira, 17 de abril de 2012 22:22
-
Isto esta mal: OleDbCommand _command = new OleDbCommand("select Nome From clientes Where (ID = id);
Voce precisa um parametro no teu comando.
Faz assim: OleDbCommand _command = new OleDbCommand("select Nome From clientes Where ID =@id);
_command.parameters.addwithvalue("@id", textboxcpf.text);
OleDbDataReader rdr = null;
_connection.Open();
rdr = _command.ExecuteReader();
while (rdr.Read())
{
resultnome.Text = rdr["Nome"].ToString();
}
rdr.Close();
_connection.Close();
Se o amor fosse pecado, quem seria INOCENTE?
- Marcado como Resposta Herbert Freitas quarta-feira, 18 de abril de 2012 16:10
-