вставить команду OLE параметризован - PullRequest
0 голосов
/ 06 февраля 2012

ТЕКУЩИЙ ПРОГРЕСС НА ПУТИ РЕШЕНИЯ:

Это обновленный код:

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:

Я пытаюсь создать оператор INSERT и адаптер OLE.У меня это работало без параметров, но сейчас я пытаюсь добавить пармы и у меня проблемы с синтаксисом.Ха

Вот код на данный момент ...

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()

Просто пытался параметризовать первые две переменные.

Буду очень признателен за любые предложения.

РЕДАКТИРОВАТЬ: Fixed SQL

1 Ответ

2 голосов
/ 06 февраля 2012

Вы делаете что-то не так. Вы сначала добавляете параметры:

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()
...