解决方案的当前进展:
这是更新的代码:
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
答案 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()