2013-12-16 39 views
1

我需要一些幫助從數據庫刪除記錄。從數據庫刪除記錄時出錯

我想從我的SQL Server數據庫中的表中刪除一條記錄。

我錯過了什麼嗎?

Private Sub cmdDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDelete.Click 
    _DataSet.Tables(0).Rows(CInt(txtCurrent.Text) - 1).Delete() 
    ' tho, it can remove the deleted rows 
    ' we cannot call the DataSet.AcceptChanges method 
    ' because the DataAdapter would not recognize the delete row 
    ' by the time DataAdapter.Update(DataSet) is called. 
    EnableNavigation() 
    cmdSave.Enabled = True ' let user update the underlying database 
    ' after deleting the current record, the current record still points to the 
    ' deleted record (though it cannot be updated). 
    ' The user must MoveNext/Back to view other records. 
End Sub 

回答

3

DataRow.Delete不會從數據庫中刪除此行。它將DataRowRowState標記爲deleted。如果您致電Update,將從DataAdapter進行檢查。如果它的狀態是Deleted它會根據您要提供的DeleteCommand尋找它。

因此,您需要爲您的DataAdapter提供一個DeleteCommand這是從數據庫中刪除該行的sql。

0

要刪除它

_DataSet.Tables(0).Rows(CInt(txtCurrent.Text) - 1).Delete() 

Dim adapter As New SqlDataAdapter 
Dim cmdBuilder As New SqlCommandBuilder(adapter) 
Dim DutyDetails As String = "SELECT * from MyTable" 

adapter.SelectCommand = New SqlCommand(DutyDetails, SQLConn) 
adapter.UpdateCommand = cmdBuilder.GetUpdateCommand 
adapter.DeleteCommand = cmdBuilder.GetDeleteCommand 

Dim cb As SqlCommandBuilder = New SqlCommandBuilder(adapter) 

    adapter.Update(_DataSet.Tables("0")) 

來源:Deleting a record from dataset and sql server

+0

我有這個錯誤:刪除表上的記錄時出錯...值不能爲空。 參數名稱:datatable – user2968155

0

你參考下表爲_DataSet.Tables(0),然後參考它後來成爲_DataSet.Tables("0")我敢打賭,二者之一不正確。