Error de actualizaci贸n en un DATAGRID
Estimados compa帽eros,
Estoy haciendo el ejemplo de uso del Datagrid y uso de UPDATE y DELETE en Visual Studio .NET utilizando ASP .NET. El Delete lo hace sin problemas pero cuando intento hacer el UPDATE obtengo el siguiente error: "Update requiere que UpdateCommand sea v谩lido cuando se pasa la colecci贸n DataRow con filas modificadas."
He le铆do en Microsoft que hay que incluir un SQLCommandBuilder apuntando al DataAdapter para solucionarlo pero No lo he conseguido.
Os env铆o parte del c贸digo para por si alguien puede ayudarme
Nota: En comentarios aparece el SqlCommandBuilder que he intentado poner para resolver el problema
Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
DataGrid1.EditItemIndex() = e.Item.ItemIndex
DataGrid1.DataBind()
End Sub
Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
DataGrid1.EditItemIndex() = -1
DataGrid1.DataBind()
End Sub
Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
Dim empresa, cargo As String
' Obtenemos el valor de la columna clave de la columna que va a ser modificada
Dim key As String = DataGrid1.DataKeys(e.Item.ItemIndex).ToString
Dim tb As TextBox 'Obtenemos los campos modificados
tb = CType(e.Item.Cells(1).Controls(0), TextBox)
empresa = tb.Text
tb = CType(e.Item.Cells(2).Controls(0), TextBox)
cargo = tb.Text
Dim r As DataSet1.clientesRow
r = DataSet11.clientes.FindBynombre(key)
' Actualizamos el dataset
r.empresa = empresa
r.cargo() = cargo
'Dim cb As New SqlCommandBuilder(SqlDataAdapter1)
SqlDataAdapter1.Update(DataSet11) ' Actualizamos la base de datos con el dataset
DataGrid1.EditItemIndex = -1 ' Quitamos el modo de Edici贸n
DataGrid1.DataBind() ' Refrescamos el grid
End Sub
Muchas Gracias
Estoy haciendo el ejemplo de uso del Datagrid y uso de UPDATE y DELETE en Visual Studio .NET utilizando ASP .NET. El Delete lo hace sin problemas pero cuando intento hacer el UPDATE obtengo el siguiente error: "Update requiere que UpdateCommand sea v谩lido cuando se pasa la colecci贸n DataRow con filas modificadas."
He le铆do en Microsoft que hay que incluir un SQLCommandBuilder apuntando al DataAdapter para solucionarlo pero No lo he conseguido.
Os env铆o parte del c贸digo para por si alguien puede ayudarme
Nota: En comentarios aparece el SqlCommandBuilder que he intentado poner para resolver el problema
Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
DataGrid1.EditItemIndex() = e.Item.ItemIndex
DataGrid1.DataBind()
End Sub
Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
DataGrid1.EditItemIndex() = -1
DataGrid1.DataBind()
End Sub
Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
Dim empresa, cargo As String
' Obtenemos el valor de la columna clave de la columna que va a ser modificada
Dim key As String = DataGrid1.DataKeys(e.Item.ItemIndex).ToString
Dim tb As TextBox 'Obtenemos los campos modificados
tb = CType(e.Item.Cells(1).Controls(0), TextBox)
empresa = tb.Text
tb = CType(e.Item.Cells(2).Controls(0), TextBox)
cargo = tb.Text
Dim r As DataSet1.clientesRow
r = DataSet11.clientes.FindBynombre(key)
' Actualizamos el dataset
r.empresa = empresa
r.cargo() = cargo
'Dim cb As New SqlCommandBuilder(SqlDataAdapter1)
SqlDataAdapter1.Update(DataSet11) ' Actualizamos la base de datos con el dataset
DataGrid1.EditItemIndex = -1 ' Quitamos el modo de Edici贸n
DataGrid1.DataBind() ' Refrescamos el grid
End Sub
Muchas Gracias
