请教一个问题!!高手多帮忙!!万分感谢!
下面是初始化
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Public dtset As DataSet
Public dtcmd As SqlDataAdapter
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ssqlstring As String = "data source=.;uid=sa;pwd=;database=csdd "
Dim dtconn As SqlConnection = New SqlConnection(ssqlstring)
dtconn.Open()
dtcmd = New SqlDataAdapter( "select * from sp ", dtconn)
dtset = New DataSet
dtcmd.Fill(dtset, "spqd ")
DataGrid1.DataSource = dtset.Tables( "spqd ").DefaultView
End Sub
End Class
下面是删除按钮的语句
Dim i = DataGrid1.CurrentRowIndex
If MessageBox.Show( "确定删除? ", "confim ", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
dtset.Tables( "sp ").Rows(i).Delete()
dtset.Tables( "sp ").DefaultView.RowFilter = " "
dtcmd.Update(dtset.Tables( "sp "))
End If
但是,点击删除时提示:当传递具有已删除行的 DataRow 集合时,更新要求有效的 DeleteCommand。
出的问题在dtcmd.Update(dtset.Tables( "sp ")),我把他改为dtcmd.Update(dtset)或者dtcmd.Update(dtset, "sp "),结果都是这个错误提示,不知道问题出在那里???那位告示给看看??
多谢!!!
[解决办法]
在删除按钮的代码中加入一句
Dim b As New SqlCommandBuilder(dtcmd)
加在Update之前,用来生成有效的DeleteCommand。
[解决办法]
使用SqlCommandBuilder生成DeleteCommand语句
Dim b As New SqlCommandBuilder(dtcmd)
dtcmd.Update(dtset.Tables( "sp "))
[解决办法]
谢谢支持。