首页 > 解决方案 > 在 VB.NET 中引用 SQL 行的 ID 以更新 datagridview 上的选定行

问题描述

希望有人可以为此提供一些建议,希望可以轻松解决。有2个问题:

  1. 我在 VB.NET 中有一个数据网格视图,当您单击该行以更新它时,我被卡住了,然后使用我拥有的代码,我似乎无法从 SQL 表中引用现有的唯一 ID在我的代码中更新它,而是将更新的行作为具有新 ID 和更新数据的新行。

通过实验,我使用了一个新的 Guid.NewGuid,但正如我所说,我不确定如何从 SQL 数据库中引用实际 ID 来更新该行。

从更新按钮调用的代码如下:

Private Sub UpdateDataToQuery()

    Dim MyCmd As New SqlCommand()
    Dim da As New SqlDataAdapter()
    Dim myTable As New DataTable()
    Dim sSQL As String = String.Empty

    'Reference the Opened connection from other conn call and load update query

    myConn.Open()
    MyCmd.Connection = myConn
    MyCmd.CommandType = CommandType.Text

    sSQL = "UPDATE MySQlTable1 set myTable.Columns(1).ColumnName = @InputDate, 
myTable.Columns(2).ColumnName = @staffMember, myTable.Columns(3).ColumnName = @Band, 
myTable.Columns(4).ColumnName = @Defecit, myTable.Columns(5).ColumnName = @Reason, 
myTable.Columns(6).ColumnName = @ward, myTable.Columns(7).ColumnName = @AuthoriserName5, 
myTable.Columns(8).ColumnName = @AuthoriserName6 WHERE OT_ID = @guidValue"



    MyCmd.CommandText = sSQL
    da.SelectCommand = MyCmd
    da.Fill(myTable) **<<<< Error here Incorrect syntax near '.'**

    'Parameters for update query

    MyCmd.Parameters.AddWithValue("@guidValue", Guid.NewGuid)
    MyCmd.Parameters.AddWithValue("@InputDate", DateTimePicker1.Value)
    MyCmd.Parameters.AddWithValue("@staffMember", ComboBox1.GetItemText(ComboBox1.SelectedItem))
    MyCmd.Parameters.AddWithValue("@Ward", ComboBox2.GetItemText(ComboBox2.SelectedItem))
    MyCmd.Parameters.AddWithValue("@Defecit", ComboBox3.GetItemText(ComboBox3.SelectedItem))
    MyCmd.Parameters.AddWithValue("@Reason", ComboBox4.GetItemText(ComboBox4.SelectedItem))
    MyCmd.Parameters.AddWithValue("@Band", ComboBox5.GetItemText(ComboBox5.SelectedItem))
    MyCmd.Parameters.AddWithValue("@AuthoriserName5", ComboBox6.GetItemText(ComboBox6.SelectedItem))
    MyCmd.Parameters.AddWithValue("@AuthoriserName6", ComboBox7.GetItemText(ComboBox7.SelectedItem))

    MyCmd.ExecuteNonQuery()

End Sub
  1. 我现在也因为“。”附近的语法不正确而出现错误。以前从未发生过,我不知道是什么原因造成的。我怀疑 SQL 语句存在一些问题,因为我最初有断线,所以我可以在代码窗口上看到它,然后它在“&”附近提出了不正确的语法。我删除了这些并将代码放在一行中,现在它给出了另一个错误。

所以,正如我所说的,它之前确实没有错误地执行过,现在它在 da.fill(MyTable) 处出现上述错误,任何指向现在明显错误的指针(第 2 点)也会有所帮助。

感谢您的任何建议。

标签: vb.netdatagridviewsql-update

解决方案


推荐阅读