81 - SqlCommand (select): Consultar registros |
En el concepto anterior recuperamos todos los registros de una tabla. Ahora veremos como podemos rescatar uno en particular.
Implementar la consulta de un artículo ingresando por teclado el código y recuperando la descripción y el precio.
Crear un proyecto llamado: PruebaBaseDatos4 y definir la siguiente interfaz visual:
5 objeto de la clase Label. 1 objeto de la clase Button. 1 objeto de la clase TextBox.
En el evento Click procedemos a buscar el código del artículo ingresado en el TextBox. El código fuente es:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; namespace PruebaBaseDatos4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { SqlConnection conexion = new SqlConnection("server=DIEGO-PC\\SQLEXPRESS ; database=base1 ; integrated security = true"); conexion.Open(); string cod = textBox1.Text; string cadena = "select descripcion, precio from articulos where codigo="+cod; SqlCommand comando = new SqlCommand(cadena, conexion); SqlDataReader registro = comando.ExecuteReader(); if (registro.Read()) { label4.Text = registro["descripcion"].ToString(); label5.Text = registro["precio"].ToString(); } else MessageBox.Show("No existe un artículo con el código ingresado"); conexion.Close(); } } }
Importamos el espacio de nombres:
using System.Data.SqlClient;
En el evento Click del botón buscar procedemos a conectarnos con el motor de base de datos y abrir la conexión:
SqlConnection conexion = new SqlConnection("server=DIEGO-PC\\SQLEXPRESS ; database=base1 ; integrated security = true"); conexion.Open();
Seguidamente confeccionamos un string con el comando SQL select para recuperar la descripción y el precio del artículo cuyo código coincide con el valor ingresado por teclado:
string cadena = "select descripcion, precio from articulos where codigo="+cod;
Creamos un objeto de la clase SqlCommand pasando el comando SQL y la referencia a la conexión:
SqlCommand comando = new SqlCommand(cadena, conexion);
Recuperamos un objeto de la clase SqlDataReader que retorna el objeto de la clase SqlCommand mediante el llamando al método EcecuteReader:
SqlDataReader registro = comando.ExecuteReader();
Si el resultado del comando select recuperó un registro de la tabla articulos luego la llamada al método Read se verifica verdadero y procedemos a mostrar el resultado por pantalla:
if (registro.Read()) { label4.Text = registro["descripcion"].ToString(); label5.Text = registro["precio"].ToString(); }
En el caso que hayamos ingresado un código inexistente procedemos a mostrar un mensaje por el else:
else MessageBox.Show("No existe un artículo con el código ingresado");
La interfaz en funcionamiento es: