Otra de las actividades comunes con los datos es la eliminación de filas de una tabla. Para eliminar registros de una tabla debemos emplear el comando SQL delete.
Implementar una aplicación que permita consultar un artículo por su código. Luego de mostrarlo activar un botón para poder eliminarlo.
Crear un proyecto llamado: BaseDatos5 y definir la siguiente interfaz visual:
5 objeto de la clase Label. 2 objeto de la clase Button (disponer la propiedad Enabled del botón de borrado en false para que empiece desactivo) 1 objeto de la clase TextBox.
El código fuente para resolver la consulta y borrado es:
Imports System.Data.SqlClient Public Class Form1 Private conexion As New SqlConnection("server=DIEGO-PC ; database=base1 ; integrated security = true") Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 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() If registro.Read() Then Label4.Text = registro("descripcion") Label5.Text = registro("precio") Button2.Enabled = True Else MessageBox.Show("No existe un artículo con el código ingresado") End If conexion.Close() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click conexion.Open() Dim cod As String = TextBox1.Text Dim cadena As String = "delete from articulos where codigo=" & cod Dim comando As SqlCommand comando = New SqlCommand(cadena, conexion) Dim cant As Integer cant = comando.ExecuteNonQuery() If cant = 1 Then Label4.Text = "" Label5.Text = "" MessageBox.Show("Se borró el artículo") Else MessageBox.Show("No existe un artículo con el código ingresado") End If conexion.Close() Button2.Enabled = False End Sub End Class
Primero indicamos el espacio de nombres relacionado a la comunicación con SQL Server:
Imports System.Data.SqlClient
Como en los dos métodos utilizamos el objeto SqlConnection lo definimos como un atributo de la clase Form1 y lo creamos:
Private conexion As New SqlConnection("server=DIEGO-PC ; database=base1 ; integrated security = true")
El algoritmo de consulta es idéntico al concepto que vimos anteriormente (solo modificamos la propiedad Enabled del button2):
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() If registro.Read() Then Label4.Text = registro("descripcion") Label5.Text = registro("precio") Button2.Enabled = True Else MessageBox.Show("No existe un artículo con el código ingresado") End If conexion.Close()
Lo nuevo aparece en el borrado del artículo que acabamos de consultar, primer confeccionamos un String con el comando delete:
Dim cod As String = TextBox1.Text Dim cadena As String = "delete from articulos where codigo=" & cod
Luego procedemos a crear un objeto de la clase SqlCommand pasando el comando SQL de borrado con la referencia de la conexión:
Dim comando As SqlCommand comando = New SqlCommand(cadena, conexion)
Llamamos seguidamente al método ExecuteNonQuery que se comunica con el SQL Server para que ejecute el comando configurado previamente y retorna la cantidad de registros afectados (en este caso retorna la cantidad de registros borrados):
Dim cant As Integer cant = comando.ExecuteNonQuery()
Si retorna un uno significa que se borró el artículo con el código ingresado:
If cant = 1 Then Label4.Text = "" Label5.Text = "" MessageBox.Show("Se borró el artículo")
En pantalla tenemos la siguiente interfaz luego de borrar un artículo existente: