hace poco escribí con un problema que tenía cargando un combo en un datagridview y cargandolo con datatable, asignando columna a columna.
Antes no tenía combobox y hacía la carga con un dataset. Y realizaba los insert/update/delete con este código:
Código vb:
Ver original
If Ds.HasChanges() Then Dim cmd As SqlCommandBuilder cmd = New SqlCommandBuilder(Da) Dim sql1 As String = "select* from ocompra where fecha = '" & dtfecha.Value & "'" Da = New SqlDataAdapter(sql1, CnxBD) Da.Fill(Ds, "ocompra") Me.dgvventa.DataSource = Ds.Tables("ocompra") Da.InsertCommand = cmd.GetInsertCommand() Da.UpdateCommand = cmd.GetUpdateCommand() Da.DeleteCommand = cmd.GetDeleteCommand() Da.Update(Ds, "ocompra") Ds.Clear() MessageBox.Show("Datos actualizados", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information) Da = New SqlDataAdapter(sql1, CnxBD) Da.Fill(Ds, "ocompra") Me.dgvventa.DataSource = Ds.Tables("ocompra") Else MessageBox.Show("No hay cambios", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information) End If
Pero claro ahora que ya no utilizo el dataset evidentemente no me hace nada. He estado investigando y no he encontrado nada acerca de si paralelamente puedo cargar el dataset con la misma tabla y al finalizar y darle al botón de guardar pasar el datatable (editado) al dataset para que así compruebe si hay cambios y si los hay pues se realicen.
O es mejor hacerlo con:
Código vb:
Ver original
cmd.Parameters.AddWithValue("@comprobante", dgvventa(20, i).Value)
Gracias y un saludo.