47 - SqlCommand (select): Consultar registros


En el concepto anterior recuperamos todos los registros de una tabla. Ahora veremos como podemos rescatar uno en particular.

Problema

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: BaseDatos4 y definir la siguiente interfaz visual:

5 objeto de la clase Label.
1 objeto de la clase Button.
1 objeto de la clase TextBox. 
comando select consulta SqlCommand SQL Server

En el evento Click procedemos a buscar el código del artículo ingresado en el TextBox. El código fuente es:

Imports System.Data.SqlClient

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim conexion As SqlConnection
        conexion = New SqlConnection("server=DIEGO-PC ; database=base1 ; integrated security = true")
        conexion.Open()
        Dim cod As String = TextBox1.Text
        Dim cadena As String = "select descripcion, precio from articulos where codigo=" & cod
        Dim comando As SqlCommand
        comando = New SqlCommand(cadena, conexion)
        Dim registro As SqlDataReader
        registro = comando.ExecuteReader()
        Label4.Text = ""
        Label5.Text = ""
        If registro.Read() = True Then
            Label4.Text = registro("descripcion")
            Label5.Text = registro("precio")
        Else
            MessageBox.Show("No existe un artículo con el código ingresado")
        End If
        conexion.Close()
    End Sub
End Class

Importamos el espacio de nombres:

Imports 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:

        Dim conexion As SqlConnection
        conexion = New SqlConnection("server=DIEGO-PC ; 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:

        Dim cod As String = TextBox1.Text
        Dim cadena As String = "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:

        Dim comando As 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:

        Dim registro As 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() = True Then
            Label4.Text = registro("descripcion")
            Label5.Text = registro("precio")

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")
        End If

La interfaz en funcionamiento es:

comando select consulta SqlCommand SQL Server

Retornar