![](/img/trans.png)
[英]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.