Guardar los cambios en la base de datos respecto un datatable

31/03/2006 - 20:49 por sharline78 | Informe spam
Hola, mi problema es el siguiente. Necesito saber como guardar los
cambios en la base de datos
respecto de un datatable. Creo un datatable y le añado una fila para
guardar los campos
de una factura q estoy creando. Actualizo el datatable y guardo los
datos de la factura, pero como hago para guardar esos cambios en la
base de datos?. No sé si lo estoy haciendo bien, gracias.

sql = "SELECT * from facturas"
Dim dafacturas As New SqlDataAdapter(sql, dbConn)
dafacturas.Fill(dsdatos, "Facturas")

Tbl = dsdatos.Tables("Facturas")

Rw = Tbl.NewRow()

Rw("idfactura") = IdFactura
Tbl.PrimaryKey = New DataColumn() {Tbl.Columns("idfactura")}
Rw("numfactura") = numFactura
Rw("NIF") = IIf(AxMaskEdBox1.ClipText = "", DBNull.Value,
AxMaskEdBox1.ClipText)
Rw("Nombre") = IIf(txtNombre.Text = "", DBNull.Value,
txtNombre.Text)
Rw("Apellidos") = IIf(txtApellidos.Text = "", DBNull.Value,
txtApellidos.Text)
Rw("Fecha") = IIf(AxMaskEdBox5.CtlText = "", DBNull.Value,
AxMaskEdBox5.CtlText)
Rw("Subtotal") = IIf(txtSubtotal.Text = "", DBNull.Value,
txtSubtotal.Text)
Rw("IVA") = IIf(txtIVA.Text = "", DBNull.Value, txtIVA.Text)
Rw("Direccion") = IIf(txtDireccion.Text = "", DBNull.Value,
txtDireccion.Text)
Rw("Poblacion") = IIf(txtPoblacion.Text = "", DBNull.Value,
txtPoblacion.Text)
Rw("Provincia") = IIf(txtProvincia.Text = "", DBNull.Value,
txtProvincia.Text)
Rw("CP") = IIf(AxMaskEdBox2.ClipText = "", DBNull.Value,
AxMaskEdBox2.Text)
Rw("Telefono1") = IIf(AxMaskEdBox3.ClipText = "", DBNull.Value,
AxMaskEdBox3.ClipText)
Rw("Telefono2") = IIf(AxMaskEdBox4.ClipText = "", DBNull.Value,
AxMaskEdBox4.Text)

Try
Tbl.Rows.Add(Rw)
Tbl.AcceptChanges()
Catch Ex As Exception
MsgBox(Ex.Message)
'Actualizar codigo
MsgBox("Se Procedera a Actualizar la Factura")
End Try

'Guardar en la bd
 

Leer las respuestas

#1 Jesús López
01/04/2006 - 19:25 | Informe spam
Quita lo de AcceptChanges, esto marca todos los registros como no
modificados. Como el DataAdapter guarda sólo los registros que están
marcados como modificados, nuevos o eliminados, si están marcados como no
modificados no guarda nada.

Necesitas además este código para guardar los cambios:

Dim Builder As SqlCommandBuilder( dafacturas )

dafacturas.Update( Tbl )

Saludos:

Jesús López
MCAD


escribió en el mensaje
news:
Hola, mi problema es el siguiente. Necesito saber como guardar los
cambios en la base de datos
respecto de un datatable. Creo un datatable y le añado una fila para
guardar los campos
de una factura q estoy creando. Actualizo el datatable y guardo los
datos de la factura, pero como hago para guardar esos cambios en la
base de datos?. No sé si lo estoy haciendo bien, gracias.

sql = "SELECT * from facturas"
Dim dafacturas As New SqlDataAdapter(sql, dbConn)
dafacturas.Fill(dsdatos, "Facturas")

Tbl = dsdatos.Tables("Facturas")

Rw = Tbl.NewRow()

Rw("idfactura") = IdFactura
Tbl.PrimaryKey = New DataColumn() {Tbl.Columns("idfactura")}
Rw("numfactura") = numFactura
Rw("NIF") = IIf(AxMaskEdBox1.ClipText = "", DBNull.Value,
AxMaskEdBox1.ClipText)
Rw("Nombre") = IIf(txtNombre.Text = "", DBNull.Value,
txtNombre.Text)
Rw("Apellidos") = IIf(txtApellidos.Text = "", DBNull.Value,
txtApellidos.Text)
Rw("Fecha") = IIf(AxMaskEdBox5.CtlText = "", DBNull.Value,
AxMaskEdBox5.CtlText)
Rw("Subtotal") = IIf(txtSubtotal.Text = "", DBNull.Value,
txtSubtotal.Text)
Rw("IVA") = IIf(txtIVA.Text = "", DBNull.Value, txtIVA.Text)
Rw("Direccion") = IIf(txtDireccion.Text = "", DBNull.Value,
txtDireccion.Text)
Rw("Poblacion") = IIf(txtPoblacion.Text = "", DBNull.Value,
txtPoblacion.Text)
Rw("Provincia") = IIf(txtProvincia.Text = "", DBNull.Value,
txtProvincia.Text)
Rw("CP") = IIf(AxMaskEdBox2.ClipText = "", DBNull.Value,
AxMaskEdBox2.Text)
Rw("Telefono1") = IIf(AxMaskEdBox3.ClipText = "", DBNull.Value,
AxMaskEdBox3.ClipText)
Rw("Telefono2") = IIf(AxMaskEdBox4.ClipText = "", DBNull.Value,
AxMaskEdBox4.Text)

Try
Tbl.Rows.Add(Rw)
Tbl.AcceptChanges()
Catch Ex As Exception
MsgBox(Ex.Message)
'Actualizar codigo
MsgBox("Se Procedera a Actualizar la Factura")
End Try

'Guardar en la bd

Preguntas similares