2011-11-04 28 views
0

GetDeleteCommand() 및 DataAdapter.Update()를 사용하여 데이터베이스의 행을 삭제하려고합니다.getdeletecommand는 아무 것도 삭제하지 않습니다.

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 

:

여기 내 코드입니다.

무엇이 잘못 되었나요? 또는 올바른 명령을 수행하는 방법 또는이 작업을 수행하는 방법?

감사합니다.

답변

0

실제로 행을 삭제하지 않습니다. 찾았지만 찾은 후에는 아무 것도하지 마십시오. sqlData.Update 문 앞에 dataRow.Delete()를 호출하면 행이 삭제됩니다.

+0

예 ... 그렇습니다. 그렇지만 sqlcommand.getdeletecommand는 datarow.delete()를 사용할 때 필요하지 않습니다. –

관련 문제