[英]how to update, insert records through datagridview to sql using data adapter or other method in vb.net
[英]Insert, Delete, and Edit Data in DataGridView using single Update Button in Vb.net
我试图在 Vb.net 中添加、删除和编辑 function,方法是使用一个更新按钮并手动更改 datagridview 中的值,然后点击更新。 但是,我收到一条错误消息,指出“System.InvalidOperationException: 'Update requires a valid UpdateCommand when passed DataRow collection with modified”
有任何想法吗? 错误出现在 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
您正在创建SqlCommandBuilder
但没有将其与SqlDataAdapter
关联,那么有什么意义呢? 命令构建器的全部目的是在您在数据适配器上调用Update
时自动生成操作命令。 当您创建数据适配器时,请立即创建命令构建器并将两者关联起来,您可以通过将数据适配器作为参数传递给命令构建器的构造函数来实现。
以下代码适用于我。
Dim da As New SqlDataAdapter
Dim dt As New DataSet
Dim connection = New SqlConnection("connection string")
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim cmd As New SqlCommandBuilder(da)
Dim changes As New DataSet
changes = dt.GetChanges
If changes IsNot Nothing Then
da.Update(changes)
DataGridView1.DataSource = dt.Tables(0)
End If
End Sub
Private Sub load_data()
Dim cmd As SqlCommand = New SqlCommand("Select * From TrueTrack", connection)
da = New SqlDataAdapter(cmd)
dt.Clear()
da.Fill(dt)
DataGridView1.DataSource = dt.Tables(0)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
load_data()
End Sub
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
connection.Close()
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.