【发布时间】:2022-01-17 11:10:26
【问题描述】:
我试图在 Vb.net 中添加、删除和编辑功能,方法是使用一个更新按钮并手动更改 datagridview 中的值,然后点击更新。但是,我收到一条错误消息 "System.InvalidOperationException: '当传递 DataRow 集合并修改时,更新需要有效的 UpdateCommand"
有什么想法吗?错误出现在 da.Update(changes) 旁边
此外,在我的代码中未显示的上述代码中,我在私有 form1_load 子中有 load_data()。
代码如下:
Dim da As New SqlDataAdapter
Dim dt As New DataSet
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
Dim cmd As New SqlCommandBuilder
Dim changes As New DataSet
changes = dt.GetChanges
If changes IsNot Nothing Then
da.Update(changes)
da.Fill(dt)
DataGridView1.DataSource = dt.Tables(0)
End If
End Sub
Private Sub load_data()
Using connection = New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=vbconnectionfinal;Integrated Security=True")
da = New SqlDataAdapter("Select * From TrueTrack", connection)
dt.Clear()
da.Fill(dt)
DataGridView1.DataSource = dt.Tables(0)
End Using
End Sub
【问题讨论】:
-
da 在哪里声明?根据错误消息,您是否指定了更新命令?
-
da 在我的问题代码上方声明,由于某种原因它没有进入代码框。至于指定更新命令,它应该根据我相信或应该更新的数据集来填充,除非我把那部分搞砸了
-
SqlDataAdapter构造函数不会创建任何默认的 INSERT/UPDATE/DELETE 命令。每个命令都应该明确指定。 -
在 da.Update 行上设置断点并检查属性以确认可能吗?
-
检查我的回答是否能帮助您处理这个问题,如果有帮助,请考虑accepting it。如果没有,请在此处提供更多详细信息。
标签: sql database vb.net visual-studio