insert命令OLE参数化

时间:2012-02-06 17:27:04

标签: vb.net oledb

解决方案的当前进展:

这是更新的代码:

sql = "INSERT INTO Strings (String_Name, Long_Text, Short_Text, Alternate_Text, Multi_String_ID, Lang_ID) VALUES (?,?, ?,?,?,?)"

Dim command = New OleDbCommand(sql, pConn)

command.Parameters.AddWithValue("@webStringName", "String_Name")
command.Parameters.AddWithValue("@webLang_String", "Long_Text")
command.Parameters.AddWithValue("@ptsShortText", "Short_Text")
command.Parameters.AddWithValue("@webAltText", "Alternate_Text")
command.Parameters.AddWithValue("@webMultiStringID", "Multi_String_ID")

将以上行改为此...     command.Parameters.AddWithValue(“@ webMultiStringID”,OleDbType.Integer).Value = webMultiStringID

command.Parameters.AddWithValue("@webLang_Code", "Lang_ID")

command.ExecuteNonQuery()

ORIG POST:

我正在尝试使用和OLE适配器创建和INSERT语句。我没有paramtersm工作,但现在我正在尝试添加parms并且我的语法有问题。哈

到目前为止,这是代码......

command = New OleDbCommand(sql, pConn)

sql = "INSERT INTO Strings (String_Name, Long_Text, Short_Text) VALUES (?,?, """ & ptsShortText & """)"


command.Parameters.Add("@webStringName", OleDbType.VarChar, 250, "String_Name")
command.Parameters.Add("@webLang_String", OleDbType.VarChar, 250, "Long_Text")

command = New OleDbCommand(sql, pConn)
command.ExecuteNonQuery()

只是试图让前两个变量参数化。

任何建议都将不胜感激。

编辑:修正了SQL

1 个答案:

答案 0 :(得分:2)

你做错了什么。首先添加参数:

command.Parameters.Add("@webLang_String", OleDbType.VarChar, 250, "Long_Text")

然后用新的命令替换命令(没有参数):

command = New OleDbCommand(sql, pConn)

因此,您删除此行中的所有现有参数。这就是为什么它不起作用。


您必须按正确的顺序执行此操作:

sql = "INSERT INTO Strings (String_Name, Long_Text, Short_Text) " & _
      "VALUES (?,?, """ & ptsShortText & """)"

Dim command = New OleDbCommand(sql, pConn)  ' First create the command

' Then add the parameters to the command
command.Parameters.AddWithValue("@webStringName", "String_Name")
command.Parameters.AddWithValue("@webLang_String", "Long_Text")

' Then execute the command. (DON'T recreate it with New OleDbCommand here,
' that would throw away all you've done so far.)
command.ExecuteNonQuery()