Buenas,
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 originalIf 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 originalcmd.Parameters.AddWithValue("@comprobante", dgvventa(20, i).Value)
Gracias y un saludo.