Reputation: 3
I need some help with delete record from database.
I am trying to delete a record from a table in my SQL Server database.
Am I missing something?
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
Upvotes: 1
Views: 1468
Reputation: 18746
You refer to the table as _DataSet.Tables(0)
, then refer to it later as _DataSet.Tables("0")
I bet one of the two is incorrect.
Upvotes: 0
Reputation: 460268
DataRow.Delete
does not delete this row from database. It marks the DataRow
's RowState
as deleted. This will be checked from a DataAdapter
if you call Update
. If it's state is Deleted
it will look for its according DeleteCommand
which you have to provide.
So you need to provide a DeleteCommand
for your DataAdapter
which is the sql to delete the row from the database.
Upvotes: 3
Reputation: 28413
You want to Delete it
_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"))
Source: Deleting a record from dataset and sql server
Upvotes: 0