vb.net - 在 VB.NET 中引用 SQL 行的 ID 以更新 datagridview 上的选定行
问题描述
希望有人可以为此提供一些建议,希望可以轻松解决。有2个问题:
- 我在 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
- 我现在也因为“。”附近的语法不正确而出现错误。以前从未发生过,我不知道是什么原因造成的。我怀疑 SQL 语句存在一些问题,因为我最初有断线,所以我可以在代码窗口上看到它,然后它在“&”附近提出了不正确的语法。我删除了这些并将代码放在一行中,现在它给出了另一个错误。
所以,正如我所说的,它之前确实没有错误地执行过,现在它在 da.fill(MyTable) 处出现上述错误,任何指向现在明显错误的指针(第 2 点)也会有所帮助。
感谢您的任何建议。
解决方案
推荐阅读
- shell - 在 JetBrains IDE 中获取运行配置的 shell 版本
- ios - OCMock 类类别未按预期工作
- ruby-on-rails - Rails 低级缓存 Google Translate API 不起作用
- cmake - 如何将功能标志(定义)与 CMake 中的外部库相关联?
- amazon-web-services - What is Google Clouds anomaly detection solution for time series streaming data similar to AWS' Kinesis Random Cut Forest algorithm?
- embedded-linux - Yocto SYSTEMD_SERVICE 安装参数化服务(“@.service”)
- matrix - 无法使用 reduce_by_key 编译推力代码
- java - A foreign key constraint fails (I have an emp with the primary key that I want to connect it with emp_phones)
- linux - how to fix the error while im trying to connect private ec2 instance through public ec2 instance?
- postgresql - `instead of update` trigger: How to distinguish when user provides new value for the column and when does not?