【发布时间】:2017-09-08 18:36:41
【问题描述】:
我正在编写一个在 SQL Server 2012 中记录数据的 VB.net 程序。在这个阶段,我正在尝试在数据库中创建一个新行。主键自动创建 N+1 行,并输入新的序列号来创建行。前几天这一切都奏效了,除了您无法将该行加载到表单中以编辑其余数据,因为它在空值上绊倒了。
无论如何,我决定在创建新行时将空格“”加载到所有文本框中,将今天的日期加载到所有日期框中,并在所有复选框上返回“假”。我还添加了代码来检查空值。以下是将结果插入复选框的代码,但出现错误
'=' 附近的语法不正确
我的代码:
Private Sub btnAddNewSerial_Click(sender As System.Object, e As System.EventArgs) Handles btnAdd.Click, btnAddNewSerial.Click
Try
con.ConnectionString = (frmAdmin.lblDBConnection.Text & frmAdmin.txtDBPW.Text & frmAdmin.lblDBConnection2.Text)
con.Open()
cmd.Connection = con
cmd.CommandText = "INSERT INTO SLE1000DB (SK2SoakMainPCB) " & _
"VALUES (@SK2SoakMainPCB)”
cmd.Parameters.AddWithValue("@SK2SoakMainPCB", SqlDbType.Bit).Value = FrmSLE1000.chkSoakInteruptionsMainPCB.Checked
cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
con.Close()
MsgBox("Data updated")
Catch ex As Exception
MessageBox.Show("Error while inserting record on table..." & ex.Message, "Insert Records")
Finally
con.Close()
End Try
Me.Hide()
frmSelect.Show()
End Sub
因此,如果有人可以看到导致语法错误的原因,或者可以告诉我一种使复选框返回错误结果的更简洁的方法(我知道目前如果它确实有效,它将返回一个真实的结果,这就是我'我还在考虑)或者只是一个整体更整洁的方式来实现我的目标,这将不胜感激。我对 VB.net 和 SQL Server 的所有知识都来自一本书,因此很遗憾,非常有限!
这里提供的代码只是一个 sn-p,实际上我要向其传递数据的列要多得多,但我相信它是导致语法错误的复选框,因为没有任何 "= " 在这段代码中的其他任何地方,并在它被赶上的本节中使用一个步骤。
无论如何感谢您的帮助!
【问题讨论】:
-
您尝试调试了吗?你检查错误发生在哪里吗?你检查了实际的错误信息吗?您正在调用
AddWithValue并传递一个枚举成员 作为值。枚举存储为整数。然后您尝试将 boolean 设置为该 integer 属性的值。 -
你注意到你的命令文本的结束双引号不是真正的双引号吗?
-
这不是你使用
AddWithValue()的方式,第二个参数应该是值。但是,由于您无论如何都会立即覆盖它,这不是您的实际问题,只是一个观察。
标签: sql-server vb.net checkbox