【发布时间】:2016-10-27 14:59:28
【问题描述】:
我正在尝试使用 VB.NET 向 SQL Server 数据库添加多个值。
我已包含以下命名空间:
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlServerCe
在启动时,我已经声明了 SQL 连接:
con.ConnectionString = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=""G:\Program\X\Database1.mdf"";Integrated Security=True"
我创建了一个 VB Windows 窗体,使用户能够为试卷添加、编辑和删除问题。
当用户单击“保存问题”按钮时,问题将保存为 .txt 文件。
这应该调用InsertQuestion 子例程:
con.Open()
InsertQuestion(con)
con.Close()
InsertQuestion子程序:
Sub InsertQuestion(ByVal con As SqlConnection)
Using con
Dim command As New SqlCommand(("INSERT INTO Table VALUES('" & Collection(0).Question & "','" & Collection(0).Answer & "','" & Collection(0).Type & "','" & Collection(0).Mark & "')'"), con)
command.ExecuteNonQuery()
con.Close()
End Using
End Sub
这应该将此数据添加到表中。该表有五列 - ID、问题、答案、类型、标记。 ID 是问题的编号,设置为自动递增。
从数组的第一个元素开始,索引 (0) 中的问题应该添加到第 2 列(在问题下),索引(0)中的答案应该添加到第 3 列(答案下)......等等.
但是,当程序运行时,用户点击“保存问题”,就会出现错误:
Microsoft.VisualBasic.dll 中出现“System.InvalidCastException”类型的未处理异常
附加信息:未为字符串“INSERT INTO QuestionTable VALUES”和类型“RuntimeType”定义运算符“&”。
因此,我非常感谢有关如何修复此命令/代码以将数据添加到表中的建议。
此外,我将如何从索引 1 等向表中添加更多问题...
非常感谢。
【问题讨论】:
-
我会为这种工作使用参数,但我认为问题可能在于末尾的尾随撇号
)'可能不止于此,但如果不进行调试就很难。跨度> -
您的 Question、Answer、Type 和 Mark 属性有哪些类型?如果您之后使用
.ToString(),我可能会解决该错误。 @Scrub -
您在连接字符串中指定的
.mdf文件是正确 SQL Server 数据库文件 - 不是 SQL Server CE 文件(那些是.sdf)
标签: sql vb.net sql-server-ce