0

我再次向你寻求帮助。尝试将在 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。

据我所知,之所以会产生问题,是因为数据适配器上没有设置更新命令。

4

0 回答 0