Ошибка при удалении записи из базы данных

Мне нужна помощь с удалением записи из базы данных.

Я пытаюсь удалить запись из таблицы в моей базе данных 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"))

Источник: удаление записи из набора данных и сервера SQL

Другие вопросы по тегам