Para seleccionar un cliente y después abrir un panel de edición con los campos llenos con la información actual, debemos obtener su ID y luego buscar estos datos en la base de datos (o pasar toda la información por parámetro, en mi caso funciona rápido buscándolo en la base de datos según el ID)
Llenar un Panel con los datos de la base de datos
- En mi caso tengo un DataGridView donde muestro todos los clientes
- Debajo del Grid hay un botón EditarCliente que nos muestra un Panel con los datos actuales del cliente para modificarlos
- En el código de este botón primero obtendremos el ID del cliente, que es la primera celda de la fila del cliente que tenemos seleccionada
- Luego llamaremos al método LlenarDatos con este identificador para que nos busque los datos en la base de datos y los asigne a los TextBox del nuevo panel
Private Sub EditarCliente_Click(sender As Object, e As EventArgs) Handles EditarCliente.Click
Dim id As String = Grid.Item(0, Grid.CurrentRow.Index).Value.ToString
LlenarDatos(id)
End Sub
Public Sub LlenarDatos(id As Integer)
Dim cadena As String
cadena = "SELECT nom_cli,ap1_cli,ap2_cli,direcc_cli,edad_cli,telf_cli,dni_cli,email_cli,obs_cli FROM clientes WHERE id_cliente = ?id"
Dim consulta As New MySqlCommand(cadena, conexion)
consulta.Parameters.AddWithValue("?id", id)
conexion.Open()
Dim dr As System.Data.IDataReader
dr = consulta.ExecuteReader()
While dr.Read()
NombreCliente.Text = dr.GetString(0)
Apellido1Cliente.Text = dr.GetString(1)
Apellido2Cliente.Text = dr.GetString(2)
DireccionCliente.Text = dr.GetString(3)
EdadCliente.Text = dr.GetInt32(4).ToString
TelefonoCliente.Text = dr.GetString(5)
DniCliente.Text = dr.GetString(6)
EmailCliente.Text = dr.GetString(7)
ObservacionesCliente.Text = dr.GetString(8)
End While
conexion.Close()
End Sub
No hay comentarios:
Publicar un comentario