从DataGridView填充SQL数据库表

时间:2013-09-03 19:20:50

标签: vb.net sql-server-2005 datagridview dataadapter sqlcommandbuilder

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

从我可以看出,问题的产生是因为数据适配器上没有设置更新命令。

0 个答案:

没有答案
相关问题