C sharp - Rellenar campos base datos

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 5 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Rellenar campos base datos

Publicado por Pedro Alvarez (7 intervenciones) el 03/12/2018 23:13:47
Buenos días a todos, estoy tratando de hacer un formulario en el cual el usuario escriba el nombre de un cliente y con el evento TextChanged del textBox, me vaya filtrando la base de datos y me la sugiera con la propiedad de autocompletar. Esto me funciona correctamente.

El problema viene, cuando selecciono uno de los nombres y deseo que me llene el resto del formulario y el programa no hace nada. Al seleccionar el nombre (o escribirlo manualmente) debería buscar en la base de datos el nombre que coincide, extraer el resto de información e irlo pegando en el resto de los campos, pero esto no sucede.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
try
{
    OleDbCommand OrdenSql = new OleDbCommand("SELECT * FROM Clientes WHERE Nombre =  ' " + txbNombre.Text + " ' ", Conexion);
    Conexion.Open();
 
    OleDbDataReader Lector = OrdenSql.ExecuteReader();
 
    if (Lector.Read() == true)
    {
        txbCalle.Text = Lector["Calle"].ToString();
    }
    else if (Lector.Read() == false)
    {
        MessageBox.Show("no se encontró el cliente");
    }
    else
    {
        MessageBox.Show("error");
    }
    Conexion.Close();
 
}
catch (Exception Error)
{
    MessageBox.Show("¡Error!\nNo se pudo rellenar la información del cliente.\n \n \n" + Error.ToString());
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Rellenar campos base datos

Publicado por Yamil Bracho (1164 intervenciones) el 03/12/2018 23:30:39
No se a que BD te estan conectando pero trata de usar siempre el provider nativo
Puedes simplificiar tu codigo haciendo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
try
{
   string sql = "SELECT * FROM Clientes WHERE Nombre =  @Nombre";
   using (OleDbCommand cmd = new OleDbCommand(sql, Conexion))
   {
	 cmd.Parameters.AddWithValue("@Nombre", txbNombre.Text);
     Conexion.Open();
 
	using (OleDbDataReader reader = cmd.ExecuteReader())
	{
		if (reader.Read())
		{
				txbCalle.Text = reader["Calle"].ToString();
		}
		else
		{
			MessageBox.Show("no se encontró el cliente");
		}
	}
	Conexion.Close();
  }
}
catch (Exception Error)
{
	MessageBox.Show("¡Error!\nNo se pudo rellenar la información del cliente.\n \n \n" + Error.ToString());
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 5 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Rellenar campos base datos

Publicado por Pedro Alvarez (7 intervenciones) el 03/12/2018 23:47:15
Muchas gracias, ahora funciona perfectamente.
La BD esta en Access, debería conectarme, entonces, como tu ejemplo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Rellenar campos base datos

Publicado por Yamil Bracho (1164 intervenciones) el 03/12/2018 23:57:47
Tienes manejo de inyecion de SQL y ademas el dealloc de los objetos command y reader con using...
Creo que de repente te puede dar un poquito de performance...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar