getdeletecommand不会删除任何内容

时间:2011-11-04 16:53:24

标签: .net sql-server vb.net sqldataadapter

我正在尝试使用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

如前所述,所有代码都运行没有错误,但是从我的代码中找到并“删除”的数据仍然保留在表中。

怎么了?或者如何做正确的命令或如何做到这一点?

感谢

1 个答案:

答案 0 :(得分:0)

您实际上并未删除该行。你找到它,但在找到之后不要对它做任何事情。如果在sqlData.Update语句之前调用dataRow.Delete(),则应该删除该行。