Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: andaluz en 29 Mayo 2012, 21:58 pm



Título: actualizar registro base de datos .NET
Publicado por: andaluz en 29 Mayo 2012, 21:58 pm
Hola a todos, quiero realizar una actualización a un registro que elijo de una base de datos, pero no me lo actualiza bien, me gustaría saber en que parte del código me he equivocado.

os dejo el código
Código
  1.    Private Sub btn_Buscar_Cliente_Modificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Buscar_Cliente_Modificar.Click
  2.        Dim id_cl As Integer
  3.        Dim Nombre_cl, Apellidos_cl, DNI_cl, Poblacion_cl, Domicilio_cl, Telefono_cl, Correo_cl As String
  4.        Dim i As Integer
  5.        Dim DNI_Buscar As String
  6.  
  7.        ' pido por pantalla que introduzca el DNI del cliente que queremos buscar
  8.        DNI_Buscar = InputBox("Introduce el DNI del cliente a buscar", "Cliente a buscar")
  9.  
  10.        ' almaceno el valor del DNI en un TextBox oculto
  11.        txt_DNI_Cli_Modificar_Oculto.Text = DNI_Buscar
  12.  
  13.        For i = 0 To ClientesTableAdapter.GetData.Rows.Count - 1
  14.            id_cl = ClientesTableAdapter.GetData.Rows(i).Item(0)
  15.            Nombre_cl = ClientesTableAdapter.GetData.Rows(i).Item(1)
  16.            Apellidos_cl = ClientesTableAdapter.GetData.Rows(i).Item(2)
  17.            DNI_cl = ClientesTableAdapter.GetData.Rows(i).Item(3)
  18.            Poblacion_cl = ClientesTableAdapter.GetData.Rows(i).Item(4)
  19.            Domicilio_cl = ClientesTableAdapter.GetData.Rows(i).Item(5)
  20.            Telefono_cl = ClientesTableAdapter.GetData.Rows(i).Item(6)
  21.            Correo_cl = ClientesTableAdapter.GetData.Rows(i).Item(7)
  22.  
  23.            ' compruebo que ha introducido algun DNI
  24.            If DNI_Buscar = "" Then
  25.                MessageBox.Show("No ha introducido ningun DNI, introduzca alguno", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
  26.                Exit Sub
  27.            End If
  28.  
  29.            ' si el DNI que ha introducido existe
  30.            If DNI_Buscar = DNI_cl Then
  31.                grb_Modificar_Clientes.Enabled = True
  32.                txt_Nombre_Cli_Modificar.Text = Nombre_cl
  33.                txt_Apellidos_Cli_Modificar.Text = Apellidos_cl
  34.                txt_DNI_Cli_Modificar.Text = DNI_cl
  35.                txt_Poblacion_Cli_Modificar.Text = Poblacion_cl
  36.                txt_Domicilio_Cli_Modificar.Text = Domicilio_cl
  37.                txt_Telefono_Cli_Modificar.Text = Telefono_cl
  38.                txt_Correo_Cli_Modificar.Text = Correo_cl
  39.                MessageBox.Show("Cliente encontrado", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
  40.                MessageBox.Show("Modifique los valores que desee", "Modificar", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  41.                'grb_Modificar_Clientes.Enabled = False
  42.                btn_Buscar_Cliente_Modificar.Enabled = False
  43.                btn_Modificar_Cliente_Modificar.Enabled = True
  44.                btn_Cancelar_Cliente_Modificar.Enabled = True
  45.                Exit Sub
  46.            End If
  47.  
  48.            ' comprobamos si el DNI introducido existe
  49.            If DNI_Buscar <> DNI_cl Then
  50.            Else
  51.                MessageBox.Show("El DNI que ha introducido no existe", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
  52.                Exit Sub
  53.            End If
  54.        Next
  55.    End Sub
  56.  

Saludos


Título: Re: actualizar registro base de datos .NET
Publicado por: seba123neo en 30 Mayo 2012, 00:01 am
primero no usaria un inputbx, queda feo y ni se usa, mejor un textbox donde el tipo escriba. y para actualizar un registro simplemente ejecutar el comando SQL UPDATE y listo.


Título: Re: actualizar registro base de datos .NET
Publicado por: HdM en 30 Mayo 2012, 10:24 am
Buenas.

Podrías simplificar mucho código/tiempo, si en vez de montar un bucle que recorra la tabla hasta encontrar la coincidencia de dni y cambiar valores de textos/botones, hicieses un SELECT ... WHERE... a la tabla buscando ese dni. Si existe, entonces cambias valores de los controles.

primero no usaria un inputbx, queda feo y ni se usa, mejor un textbox donde el tipo escriba. y para actualizar un registro simplemente ejecutar el comando SQL UPDATE y listo.

Correcto, ¿dónde está el código que debe actualizar el registro en bd? En teoría será en btn_Modificar_Cliente_Modificar_Click, pero no lo muestras.

Saludos.


Título: Re: actualizar registro base de datos .NET
Publicado por: andaluz en 30 Mayo 2012, 16:54 pm
es verdad, no he puesto el código para modificar el registro, el código que he utilizado para actualizar el registro es el siguiente:

Código
  1. Private Sub btn_Borrar_Cliente_Modificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Modificar_Cliente_Modificar.Click
  2.        Dim id_cl As Integer
  3.        Dim Nombre_cl, Apellidos_cl, DNI_cl, Poblacion_cl, Domicilio_cl, Telefono_cl, Correo_cl As String
  4.        Dim i As Integer
  5.        Dim DNI_Buscar As String
  6.  
  7.        ' almaceno el valor del DNI en un TextBox oculto
  8.        DNI_Buscar = txt_DNI_Cli_Modificar_Oculto.Text
  9.  
  10.        For i = 0 To ClientesTableAdapter.GetData.Rows.Count - 1
  11.            id_cl = ClientesTableAdapter.GetData.Rows(i).Item(0)
  12.            Nombre_cl = ClientesTableAdapter.GetData.Rows(i).Item(1)
  13.            Apellidos_cl = ClientesTableAdapter.GetData.Rows(i).Item(2)
  14.            DNI_cl = ClientesTableAdapter.GetData.Rows(i).Item(3)
  15.            Poblacion_cl = ClientesTableAdapter.GetData.Rows(i).Item(4)
  16.            Domicilio_cl = ClientesTableAdapter.GetData.Rows(i).Item(5)
  17.            Telefono_cl = ClientesTableAdapter.GetData.Rows(i).Item(6)
  18.            Correo_cl = ClientesTableAdapter.GetData.Rows(i).Item(7)
  19.  
  20.            ' si el DNI que ha introducido existe
  21.            If DNI_Buscar = DNI_cl Then
  22.                grb_Modificar_Clientes.Enabled = True
  23.                Nombre_cl = txt_Nombre_Cli_Modificar.Text
  24.                Apellidos_cl = txt_Apellidos_Cli_Modificar.Text
  25.                DNI_cl = txt_DNI_Cli_Modificar.Text
  26.                Poblacion_cl = txt_Poblacion_Cli_Modificar.Text
  27.                Domicilio_cl = txt_Domicilio_Cli_Modificar.Text
  28.                Telefono_cl = txt_Telefono_Cli_Modificar.Text
  29.                Correo_cl = txt_Correo_Cli_Modificar.Text
  30.  
  31.                ' Actualizo el cliente
  32.                ClientesTableAdapter.Update(txt_Nombre_Cli_Modificar.Text, txt_Apellidos_Cli_Modificar.Text,
  33.                                            txt_DNI_Cli_Modificar.Text, txt_Poblacion_Cli_Modificar.Text,
  34.                                            txt_Domicilio_Cli_Modificar.Text, txt_Telefono_Cli_Modificar.Text,
  35.                                            txt_Correo_Cli_Modificar.Text,
  36.                                            id_cl, Nombre_cl, Apellidos_cl, DNI_cl,
  37.                                            Poblacion_cl, Domicilio_cl, Telefono_cl, Correo_cl)
  38.                MessageBox.Show("Cliente modificado", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
  39.  
  40.                Limpiar_TextBox(txt_Nombre_Cli_Modificar.Text, txt_Apellidos_Cli_Modificar.Text,
  41.                                            txt_DNI_Cli_Modificar.Text, txt_Poblacion_Cli_Modificar.Text,
  42.                                            txt_Domicilio_Cli_Modificar.Text, txt_Telefono_Cli_Modificar.Text,
  43.                                            txt_Correo_Cli_Modificar.Text)
  44.  
  45.                grb_Modificar_Clientes.Enabled = False
  46.                btn_Buscar_Cliente_Modificar.Enabled = True
  47.                btn_Cancelar_Cliente_Modificar.Enabled = False
  48.                btn_Modificar_Cliente_Modificar.Enabled = False
  49.                Exit Sub
  50.            End If
  51.        Next
  52.    End Sub
  53.  

Saludos