VB.NET - 我的SQLinsert有什么问题?访问数据库

时间:2011-06-27 19:53:17

标签: database vb.net

我有一个包含大量内容的数据库,现在我正在读取数据,对其进行一些处理,然后将其粘贴到新数据库中。我的代码生成了这个字符串:

query_string = "INSERT INTO OrgPhrase (EXACT_PHRASE,Org_ID) VALUES (HELLO,123)"

然后以这种方式使用:

Dim InsertCmd = New System.Data.OleDb.OleDbCommand(query_string, connection)
InsertCmd.ExecuteNonQuery()

关联的数据库(OLEdb连接)存在并打开正常,它尝试使用的所有表和列已经存在。我得到的错误消息是“没有给出一个或多个必需参数的值”

我错过了什么吗?我拼错了吗?我没有大量的数据库工作经验,但我以前从未遇到过这样的麻烦。

2 个答案:

答案 0 :(得分:3)

我认为查询应该是

query_string = "INSERT INTO OrgPhrase (EXACT_PHRASE,Org_ID) VALUES ('HELLO',123)"

此外,可能会发生该表有超过2列非NUll且需要它们的值。

答案 1 :(得分:2)

考虑参数化查询字符串。这有几个原因。首先,您可以传递值而无需担心是否需要单引号。其次,您可以阻止SQL注入。

query_string = "INSERT INTO OrgPhrase (EXACT_PHRASE,Org_ID) VALUES (@ExactPhrase,@OrgId)" 

然后根据字符串中的参数名称创建参数。当然,除非您的查询字符串始终是相同的值,但这听起来有点太硬编码而不是很好。