【发布时间】:2018-05-05 16:18:16
【问题描述】:
由于某种原因,我无法更新我的记录。如下:
我有一个 Windows 窗体,它会在加载时显示飞机的当前状态。如果该状态发生变化,我可以从组合框 (cboServ) 中选择值。当我从该表单单击退出按钮时,状态应该会更新,因此在再次加载表单时会出现新值。然而事实并非如此。
这是我目前拥有的代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim updateQuery As String = "UPDATE dbo.aircraft SET dbo.aircraft.condition = @OE_status WHERE aircraft.avNum = 'ab201'"
Dim updateCmd As New SqlCommand(updateQuery, con)
updateCmd.Parameters.Add("@OE_status", cboServ.SelectedValue)
MessageBox.Show("it worked")
con.Close()
Me.Close()
Form1.Show()
End Sub
我得到的错误是 - 我不完全理解:
System.InvalidCastException: '从'DataRowView' 类型到'String' 类型的转换无效。'
这来自cboServ.SelectedValue这一行。
【问题讨论】:
-
哪一行产生错误?我想知道您是否希望
cboServ.SelectedValue解析为字符串,而它却给您一个DataRowView。 -
@halfer 我的道歉,这是包含 [code]cboServ.SelectedValue[/code] 的行
-
好的,所以使用您的自动完成功能从该对象中获取一个值。也许是
cboServ.SelectedValue.Something,其中Something是您必须使用自动完成来解决的问题。 -
(如您所见,BBCode 在这里不起作用。在 cmets 中使用反引号来渲染小段代码)。
-
您指定的行上的错误 (updateCmd.Parameters.ADD.....) 看起来确实很奇怪。但是,忽略您在此处显示的代码设置了更新行的命令,但从未实际执行它。如果这里显示的代码曾经对数据库做过任何事情,我会感到非常惊讶。
标签: sql vb.net sql-update