我再次向你寻求帮助。尝试将在 DataGridView 中输入的数据保存回 SQL 表时,我有点卡住了。
我已经关注了一些帖子,但只是无法弄清楚
我在表单上全局声明以下变量
Dim SQLAdaptor As New SqlClient.SqlDataAdapter
Dim Con As New SqlClient.SqlConnection
Dim builder As SqlClient.SqlCommandBuilder
我在表单加载时调用它
Private Sub SetTicketList()
Con.ConnectionString = CropTrackMod.strConn
SQLAdaptor.SelectCommand = New SqlClient.SqlCommand("SELECT StockRef, Weight, EstimatedPrice, EstimatedPrice, DespatchedQuantity, EstimatedTransport, EstimatedLineTotal FROM TicketDetail", Con)
builder = New SqlClient.SqlCommandBuilder(SQLAdaptor)
Con.Open()
Dim myTable As DataTable = New DataTable
SQLAdaptor.Fill(myTable)
dgvTicketDetail.DataSource = myTable
End Sub
当用户在数据网格视图上留下一行应该保存回 sql 表时,我调用它
Private Sub dgvTicketDetail_RowLeave
' at grid save'
Dim myTable = CType(dgvTicketDetail.DataSource, DataTable)
SQLAdaptor.Update(myTable)
End Sub
加载表单后,数据网格视图会填充正确的列,所以我认为第一部分没问题。保存数据时出现问题。当我第一次运行它时,没有错误消息。当我尝试第二行时,出现以下错误:
当传递带有新行的 DataRow 集合时,更新需要有效的 InsertCommand。
据我所知,之所以会产生问题,是因为数据适配器上没有设置更新命令。