miércoles, 2 de noviembre de 2011

Eliminar un registro de una base de datos

En este ejemplo se indica por una parte como leer y mostrar los datos de una tabla, de uno en uno.
Para lo cual en vez de leer del DataReader mediante un bucle While, se ejecuta una lectura del DataReader por cada pulsación del botón.


'7 - Mostrar valores del reader
        lector.Read()
        'Se añaden datos a los textbox
        TextBox1.Text = lector.GetValue(0).ToString
        TextBox2.Text = lector.GetValue(1).ToString
        TextBox3.Text = lector.GetValue(2).ToString
        TextBox4.Text = lector.GetValue(3).ToString
        TextBox5.Text = lector.GetValue(4).ToString


Por otro lado, se muestra como tratar el proceso de eliminación de un registro, intentando evitar que se eliminen datos accidentalmente, mostrando un MessageBox que solicita confirmación de la eliminación del registro, pero que tiene asignado por defecto el botón de cancelar, para evitar que una  pulsación errónea provoque la eliminación accidental de un registro.

MessageBox.Show("¿De verdad desea eliminar el cliente número " & TextBox1.Text & "?", "Eliminación de registro", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)

Por último se muestra como utilizar una consulta de eliminación.


Dim comando_SQL As New OleDbCommand("DELETE FROM Clientes WHERE Id_cliente = " & TextBox1.Text, conexion)






- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


'1 - Importar espacio de nombres
Imports System.Data.OleDb

Public Class Form3


    Public lector As OleDbDataReader


    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '2 - crear conexion
        Dim conexion As New OleDbConnection

        '3 - cadena de conexion
        conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\factura_cliente.accdb;Persist Security Info=False;"

        '4 - abrir conexion
        conexion.Open()

        '5 - crear la sentencia SQL
        Dim comando_SQL As New OleDbCommand("SELECT * FROM Clientes ORDER BY Id_cliente", conexion)

        '6 - se crea el reader
        lector = comando_SQL.ExecuteReader

        ' *****************************************************************
        '7 - Mostrar valores del reader
        lector.Read()
        'Se añaden datos a los textbox
        TextBox1.Text = lector.GetValue(0).ToString
        TextBox2.Text = lector.GetValue(1).ToString
        TextBox3.Text = lector.GetValue(2).ToString
        TextBox4.Text = lector.GetValue(3).ToString
        TextBox5.Text = lector.GetValue(4).ToString


        '**********************************************************************

        'punto final cerrar conexion
        'conexion.Close()
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If lector.Read() Then
            'Se añade una fila al grid con un string por cada columna
            TextBox1.Text = lector.GetValue(0).ToString
            TextBox2.Text = lector.GetValue(1).ToString
            TextBox3.Text = lector.GetValue(2).ToString
            TextBox4.Text = lector.GetValue(3).ToString
            TextBox5.Text = lector.GetValue(4).ToString
        Else
            MessageBox.Show("Se han mostrado todos los registros")

        End If


    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        '2 - crear conexion
        Dim conexion As New OleDbConnection

        '3 - cadena de conexion
        conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\factura_cliente.accdb;Persist Security Info=False;"

        '4 - abrir conexion
        conexion.Open()


        If MessageBox.Show("¿De verdad desea eliminar el cliente número " & TextBox1.Text & "?", "Eliminación de registro", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.OK Then
            '5 - crear la sentencia SQL
            Dim comando_SQL As New OleDbCommand("DELETE FROM Clientes WHERE Id_cliente = " & TextBox1.Text, conexion)


            Dim total_datos_afectados As Integer
            '6 - Se ejecuta la consulta
            total_datos_afectados = comando_SQL.ExecuteNonQuery
            MessageBox.Show("Se han eliminado correctamente " & total_datos_afectados & " registros.")
        Else
            MessageBox.Show("Eliminación cancelada.")

        End If

    End Sub
End Class

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...