
Modificar datos con un form de una tabla de SQL SERVER
Publicado por nano (20 intervenciones) el 06/08/2015 08:56:41
Muy buenas a todos!!
Continuando con mis peleas personales con las tablas de SQL SERVER 2012 y Visual Studio, he creado un formulario donde "sacar" los datos de una tabla para poder modificar, agregar y demas funciones propias de una BBDD.
Me aparecen dos problemas que no consigo solventar:
1 ) Por un lado muestro los datos de un registro a traves de un combobox llamado "ComboBoxCliente" y su correspondiente boton para ello. Cuando yo elimino un registro o añado uno, esas modificaciones no me aparecen en la lista del combobox... es decir no se actualiza con los datos reales de la tabla..Como puedo hacer para que me aparezcan o se eliminen sin tener que cerrar la aplicación? Adjunto una foto como muestra además del codigo utilizado.
Me explico algo mejor: En la imagen adjunta acabo de añadir el registro con dni 152447K de nombre Manuel Garcia. Pero una vez agregado, no me aparece en el combobox para poderlo seleccionar por si necesitara realizar alguna modificación sobre el.
2) Cuando selecciono un registro cualquiera y lo modifico en los campos de arriba, al pulsar el boton modificar registro se me cambia ese campo al valor anterior o inicial y no me permite modificarlo y guardarlo en la tabla. Directamente no modifica nada.
Muchas gracias de antemano por vuestro tiempo y colaboración.
Public Class Formulario
Dim vista As New misdatosDataContext
Private Sub datos()
Dim datos = From actuales In vista.clientes
cuadricula.DataSource = datos
End Sub
Private Sub Formulario_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'BlacksenseDataSet.clientes' Puede moverla o quitarla según sea necesario.
Me.ClientesTableAdapter.Fill(Me.BlacksenseDataSet.clientes)
End Sub
Private Sub ButtonBuscar_Click(sender As Object, e As EventArgs) Handles ButtonBuscar.Click
Dim resgistroseleccionado As String = ComboBoxCliente.SelectedItem(0)
Dim consulta = From miregistro In vista.clientes Where miregistro.dni = resgistroseleccionado
For Each campos In consulta
TextBox1.Text = campos.nombre
TextBox2.Text = campos.apellido1
TextBox3.Text = campos.apellido2
TextBox4.Text = campos.direccion
TextBox5.Text = campos.cp
TextBox6.Text = campos.telefono
TextBox7.Text = campos.dni
Next
datos()
End Sub
Private Sub ButtonModificar_Click(sender As Object, e As EventArgs) Handles ButtonModificar.Click
Dim respuesta = MsgBox("Desea guardar los cambios realizados?", MsgBoxStyle.YesNo)
If respuesta = MsgBoxResult.Yes Then
Try
Dim registroseleccionado As String = ComboBoxCliente.SelectedItem(0)
Dim consulta = From miregistro In vista.clientes Where miregistro.dni = registroseleccionado
For Each campos In consulta
TextBox1.Text = campos.nombre
TextBox2.Text = campos.apellido1
TextBox3.Text = campos.apellido2
TextBox4.Text = campos.direccion
TextBox5.Text = campos.cp
TextBox6.Text = campos.telefono
TextBox7.Text = campos.dni
ComboBoxCliente.Text = campos.dni
Next
vista.SubmitChanges()
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no modificado", MsgBoxStyle.Information)
End If
datos()
End Sub
Private Sub ButtonEliminar_Click(sender As Object, e As EventArgs) Handles ButtonEliminar.Click
Dim respuesta = MsgBox("Desea eliminar el registro seleccionado?", MsgBoxStyle.YesNo)
If respuesta = MsgBoxResult.Yes Then
Try
Dim registroseleccionado As String = ComboBoxCliente.SelectedItem(0)
Dim consultaeliminar = From miregistro In vista.clientes Where miregistro.dni = registroseleccionado
For Each campos In consultaeliminar
vista.clientes.DeleteOnSubmit(campos)
Next
vista.SubmitChanges()
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no Eliminado", MsgBoxStyle.Information)
End If
datos()
End Sub
Private Sub ButtonNuevo_Click(sender As Object, e As EventArgs) Handles ButtonNuevo.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox7.Enabled = True
TextBox7.Focus()
End Sub
Private Sub ButtonGuardar_Click(sender As Object, e As EventArgs) Handles ButtonGuardar.Click
Dim respuesta = MsgBox("Desea guardar el nuevo registro?", MsgBoxStyle.YesNo)
If (respuesta = MsgBoxResult.Yes) Then
Try
Dim nuevoregistro As New clientes With {.dni = TextBox7.Text, .nombre = TextBox1.Text, .apellido1 = TextBox2.Text, .apellido2 = TextBox3.Text, .direccion = TextBox4.Text, .cp = TextBox5.Text, .telefono = TextBox6.Text}
vista.clientes.InsertOnSubmit(nuevoregistro)
vista.SubmitChanges()
Catch ex As Exception
MsgBox("Error en el Sistema")
End Try
Else
MsgBox("Registro no guardado", MsgBoxStyle.Information)
End If
datos()
End Sub
End Class


Continuando con mis peleas personales con las tablas de SQL SERVER 2012 y Visual Studio, he creado un formulario donde "sacar" los datos de una tabla para poder modificar, agregar y demas funciones propias de una BBDD.
Me aparecen dos problemas que no consigo solventar:
1 ) Por un lado muestro los datos de un registro a traves de un combobox llamado "ComboBoxCliente" y su correspondiente boton para ello. Cuando yo elimino un registro o añado uno, esas modificaciones no me aparecen en la lista del combobox... es decir no se actualiza con los datos reales de la tabla..Como puedo hacer para que me aparezcan o se eliminen sin tener que cerrar la aplicación? Adjunto una foto como muestra además del codigo utilizado.
Me explico algo mejor: En la imagen adjunta acabo de añadir el registro con dni 152447K de nombre Manuel Garcia. Pero una vez agregado, no me aparece en el combobox para poderlo seleccionar por si necesitara realizar alguna modificación sobre el.
2) Cuando selecciono un registro cualquiera y lo modifico en los campos de arriba, al pulsar el boton modificar registro se me cambia ese campo al valor anterior o inicial y no me permite modificarlo y guardarlo en la tabla. Directamente no modifica nada.
Muchas gracias de antemano por vuestro tiempo y colaboración.
Public Class Formulario
Dim vista As New misdatosDataContext
Private Sub datos()
Dim datos = From actuales In vista.clientes
cuadricula.DataSource = datos
End Sub
Private Sub Formulario_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'BlacksenseDataSet.clientes' Puede moverla o quitarla según sea necesario.
Me.ClientesTableAdapter.Fill(Me.BlacksenseDataSet.clientes)
End Sub
Private Sub ButtonBuscar_Click(sender As Object, e As EventArgs) Handles ButtonBuscar.Click
Dim resgistroseleccionado As String = ComboBoxCliente.SelectedItem(0)
Dim consulta = From miregistro In vista.clientes Where miregistro.dni = resgistroseleccionado
For Each campos In consulta
TextBox1.Text = campos.nombre
TextBox2.Text = campos.apellido1
TextBox3.Text = campos.apellido2
TextBox4.Text = campos.direccion
TextBox5.Text = campos.cp
TextBox6.Text = campos.telefono
TextBox7.Text = campos.dni
Next
datos()
End Sub
Private Sub ButtonModificar_Click(sender As Object, e As EventArgs) Handles ButtonModificar.Click
Dim respuesta = MsgBox("Desea guardar los cambios realizados?", MsgBoxStyle.YesNo)
If respuesta = MsgBoxResult.Yes Then
Try
Dim registroseleccionado As String = ComboBoxCliente.SelectedItem(0)
Dim consulta = From miregistro In vista.clientes Where miregistro.dni = registroseleccionado
For Each campos In consulta
TextBox1.Text = campos.nombre
TextBox2.Text = campos.apellido1
TextBox3.Text = campos.apellido2
TextBox4.Text = campos.direccion
TextBox5.Text = campos.cp
TextBox6.Text = campos.telefono
TextBox7.Text = campos.dni
ComboBoxCliente.Text = campos.dni
Next
vista.SubmitChanges()
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no modificado", MsgBoxStyle.Information)
End If
datos()
End Sub
Private Sub ButtonEliminar_Click(sender As Object, e As EventArgs) Handles ButtonEliminar.Click
Dim respuesta = MsgBox("Desea eliminar el registro seleccionado?", MsgBoxStyle.YesNo)
If respuesta = MsgBoxResult.Yes Then
Try
Dim registroseleccionado As String = ComboBoxCliente.SelectedItem(0)
Dim consultaeliminar = From miregistro In vista.clientes Where miregistro.dni = registroseleccionado
For Each campos In consultaeliminar
vista.clientes.DeleteOnSubmit(campos)
Next
vista.SubmitChanges()
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no Eliminado", MsgBoxStyle.Information)
End If
datos()
End Sub
Private Sub ButtonNuevo_Click(sender As Object, e As EventArgs) Handles ButtonNuevo.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox7.Enabled = True
TextBox7.Focus()
End Sub
Private Sub ButtonGuardar_Click(sender As Object, e As EventArgs) Handles ButtonGuardar.Click
Dim respuesta = MsgBox("Desea guardar el nuevo registro?", MsgBoxStyle.YesNo)
If (respuesta = MsgBoxResult.Yes) Then
Try
Dim nuevoregistro As New clientes With {.dni = TextBox7.Text, .nombre = TextBox1.Text, .apellido1 = TextBox2.Text, .apellido2 = TextBox3.Text, .direccion = TextBox4.Text, .cp = TextBox5.Text, .telefono = TextBox6.Text}
vista.clientes.InsertOnSubmit(nuevoregistro)
vista.SubmitChanges()
Catch ex As Exception
MsgBox("Error en el Sistema")
End Try
Else
MsgBox("Registro no guardado", MsgBoxStyle.Information)
End If
datos()
End Sub
End Class


Valora esta pregunta


0