getdeletecommand ничего не удаляет - PullRequest
0 голосов
/ 04 ноября 2011

Я пытаюсь удалить строку в базе данных с помощью 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 голосов
/ 04 ноября 2011

Вы на самом деле не удаляете строку. Вы находите это, но ничего не делаете с этим после того, как это найдено. Если вы вызываете dataRow.Delete () перед оператором sqlData.Update, строка должна быть удалена.

...