Formulario de datos

08/08/2006 - 20:11 por Francisco Garzon | Informe spam
Hola grupo, saludos a todos.

Estoy intentando realizar mi primer programa en serio con el vb.net, he
contruido un formulario para acceder a la tabla de clientes de una base de
datos llamada GESTION. Os explico un poco como lo estoy haciendo y despues
os muestro mi problema:

Tengo el siguiente codigo en el evento Load:

strConn = "Server=(Local);DataBase=GESTION;Integrated Security=SSPI"
Dim CNN As New SqlConnection(strConn)

Dim strSQL As String = "SELECT * FROM Customers"
Dim scmd As New SqlCommand(strSQL, CNN)

sda = New SqlDataAdapter(scmd)

Dim scb As New SqlCommandBuilder(sda)
sda.InsertCommand = scb.GetInsertCommand()
sda.UpdateCommand = scb.GetUpdateCommand()
sda.DeleteCommand = scb.GetDeleteCommand()

dsPrincipal = New DataSet()
sda.Fill(dsPrincipal, "Customers")
dtPrincipal = dsPrincipal.Tables(0)

txtID.DataBindings.Add("Text", dtPrincipal, "ID")
txtApellidos.DataBindings.Add("Text", dtPrincipal, "Apellidos")
txtNombre.DataBindings.Add("Text", dtPrincipal, "Nombre")


Para moverme por los registros utilizo botones con el codigos:

Me.BindingContext(dtPrincipal).Position -= 1

ó

Me.BindingContext(dtPrincipal).Position += 1


Para actualizar:

Me.BindingContext(dtPrincipal).EndCurrentEdit()
sda.Update(dtPrincipal)

Para Cancelar:

Me.BindingContext(dtPrincipal).CancelCurrentEdit()
sda.Update(dtPrincipal)


Y todo hasta aqui bien, modifico los textbox y cuando ejecuto el boton
actualizar o cancelar me funciona perfectamente.

En cambio para crear un nuevo registro utilizo lo siguiente:

Me.BindingContext(dtPrincipal).AddNew()

se me limpian los textbox y tecleo los nuevos datos completos. Al pulsar el
boton de actualizar con el codigo que hemos visto antes me salta una
excepcion indicandome que el campo ID es obligatorio y no puede contener
null, borrandome el que yo habia tecleado.

Alguien me puede decir que estoy haciendo mal, y si existe una forma mejor
de hacer los que estoy haciendo, que no sea con el asistente para acceso a
datos, por favor que me lo diga.


Otra pregunta, ¿Para que sirven las siguientes lineas, ya que si las quito
tambien funciona?, ¿Son necesarias?

Dim scb As New SqlCommandBuilder(sda)
sda.InsertCommand = scb.GetInsertCommand()
sda.UpdateCommand = scb.GetUpdateCommand()
sda.DeleteCommand = scb.GetDeleteCommand()

Tambien me gustaria saber que debo ejecutar cuando cierre el formulario y
cerrar todos las conexiones abiertas, dataadapter, dataset, datatable, ...

Como siempre, muchisimas gracias de antemano.

Saludos

Preguntas similare

Leer las respuestas

#16 Francisco
25/08/2006 - 08:31 | Informe spam
Hola Enrique:

Ya esta todo funcionando perfectamente (por ahora).
Muchisimas gracias por tu ayuda.

Saludos.
Francisco Garzón
Jaén (Spain)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida