我再一次向你寻求帮助。尝试将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。
从我可以看出,问题的产生是因为数据适配器上没有设置更新命令。