2013-12-16 2 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. Это будет проверено с DataAdapter, если вы позвоните Update. Если он находится в состоянии Deleted, он будет искать его согласно DeleteCommand, который вы должны предоставить.

Таким образом, вам необходимо предоставить DeleteCommand для вашего DataAdapter, который является 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") я держал пари, один из двух неверен.

 Смежные вопросы

  • Нет связанных вопросов^_^