我加載VB.NET DataGridView
使用SqlDataAdapter
填充DataSet
,然後設置DataGridView
的DataSource
到DataSet
。SqlDataAdapter的缺失的DeleteCommand
由於某些原因,使用SqlCommandBuilder
填充的唯一命令是SelectCommand
。我意識到我只是指定一個SELECT查詢,但我認爲SqlCommandBuilder
的目的是爲我生成更新/刪除/插入命令。
以下是適用代碼:
Dim _dstErrorLog As New DataSet
Dim _adapter As SqlDataAdapter
Dim _builder As SqlCommandBuilder
Private Sub ErrorLog_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Call LoadErrorLog()
End Sub
Private Sub LoadErrorLog()
Dim strSql As String
strSql = "SELECT Ident, LogDate, LogDesc FROM dbo.ErrorLog ORDER BY DescDateTime DESC"
_adapter = New SqlDataAdapter(strSql, dataLayer.Connection)
_builder = New SqlCommandBuilder(_adapter)
_adapter.Fill(_dstErrorLog)
grdErrorLog.DataSource = _dstErrorLog.Tables(0)
End Sub
Private Sub grdErrorLog_UserDeletingRow(sender As Object, e As DataGridViewRowCancelEventArgs) Handles grdErrorLog.UserDeletingRow
_adapter.Update(_dstErrorLog.Tables(0))
End Sub
當我刪除一行,它從DataGridView
消失,但是當我重新打開窗體,數據是一切仍然存在。我需要自己指定DeleteCommand
嗎?如果是這樣,那麼SqlCommandBuilder
的目的是什麼?
優秀,是沒有的伎倆!出於某種原因,當我設置斷點時,'DeleteCommand'仍然表示「Nothing」。但是,數據已成功從數據源中刪除,因此它似乎正常工作。 – 2014-12-02 22:30:08