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