Ошибка при удалении записи из базы данных
Мне нужна помощь с удалением записи из базы данных.
Я пытаюсь удалить запись из таблицы в моей базе данных 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
не удаляет эту строку из базы данных. Это отмечает DataRow
"s RowState
как удалено Это будет проверено с DataAdapter
если ты позвонишь Update
, Если это состояние Deleted
он будет искать его в соответствии DeleteCommand
который вы должны предоставить.
Таким образом, вы должны предоставить DeleteCommand
для тебя DataAdapter
который является SQL для удаления строки из базы данных.
Вы ссылаетесь на таблицу как _DataSet.Tables(0)
, затем обратитесь к нему позже _DataSet.Tables("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"))