我正在尝试使用 GetDeleteCommand() 和 DataAdapter.Update() 删除数据库中的一行。
使用 GetInsertCommand() 和 GetUpdateCommand() 所有事务都可以工作,但是使用 GetDeleteCommand() 失败,我的意思是,“运行”到这条指令上,但数据仍然保留在表中。
这是我的代码:
Public Function delete(ByVal tabla As String, ByVal arg As VariantType) As Boolean
Dim ok As Boolean = False
Dim dataSet As DataSet = New DataSet(tabla)
Dim dataRow As DataRow
Dim dataTable As DataTable
Me.sqlComm.Connection = Me.sqlConn
Me.sqlComm.CommandText = "Select * from " & tabla
Try
Me.sqlDA.SelectCommand = Me.sqlComm
'llenar el dataset con los datos de la consulta
Me.sqlDA.MissingSchemaAction = MissingSchemaAction.AddWithKey
Me.sqlDA.Fill(dataSet, tabla)
'nuevo commandbuilder
Me.sqlCB = New SqlCommandBuilder(Me.sqlDA)
'crear el buffer de la tabla
dataTable = dataSet.Tables(tabla)
'buscar el valor en la tabla
dataRow = dataTable.Rows.Find(arg)
'obtener el delete command
Me.sqlDA.DeleteCommand = Me.sqlCB.GetDeleteCommand(True)
'actualizar los registros.
'se supone q con el DeleteCommand deberia borrar en este punto el dato
Me.sqlDA.Update(dataSet, tabla)
ok = True
Catch ex As Exception
Console.WriteLine(ex.StackTrace.ToString() & vbCrLf & ex.Message())
Me.err = ex.StackTrace.ToString() & vbCrLf & ex.Message()
End Try
Me.sqlConn.Close()
Return ok
End Function
如前所述,所有代码都运行没有错误,但从我的代码中找到并“删除”的数据仍保留在表中。
怎么了?或如何执行正确的命令或如何执行此操作?
谢谢