Member 13524602 Ответов: 1

Можно мне, пожалуйста, знать ошибка синтаксиса в инструкции Update совсем рядом пули емкость


Дим updateQuery как String = "RIFFLE_PROFILE обновить набор GUN_ID='"GUN_IDTextBox.Текст"',BULLET_CAPACITY='" &амп;BULLET_CAPACITYTextTBox.Текст&амп;'",FIRE_POWDER ='"&амп;FIRE_POWDERTextBox.Текст&ампер;"', RIFFLE_NAME = '"&амп; RIFFLE_NAMETextBox.Text & "',BULLET_SIZE = " & BULLET_SIZETextBox.Текст & " WHERE GUN_Id =" & GUN_IDTextBox.Текст & ""

Что я уже пробовал:

я попытался обновить значения в таблицу, как определено в коде, и нахожу синтаксическую ошибку

F-ES Sitecore

Вы не думаете, что сообщение об ошибке важно для выяснения того, в чем проблема?

Если вы измените свой код на использование параметризованных запросов, ваша проблема, вероятно, исчезнет (мы не знаем, в чем проблема, потому что вы не думаете, что фактическое сообщение об ошибке достаточно релевантно для публикации), а также другие проблемы, о которых вы не знаете, например атаки SQL - инъекций. Google для того, чтобы использовать параметризованные запросы, это хорошо документировано.

1 Ответов

Рейтинг:
2

Jochen Arndt

Размещение такого хорошо отформатированного кода облегчает нам поиск ошибок. Вставка линейных каналов еще больше улучшает читабельность:

Dim updateQuery As String = 
"Update RIFFLE_PROFILE Set
 GUN_ID='"GUN_IDTextBox.Text"',
 BULLET_CAPACITY='" &BULLET_CAPACITYTextTBox.Text&'",
 FIRE_POWDER ='"&FIRE_POWDERTextBox.Text&"',
 RIFFLE_NAME = '"& RIFFLE_NAMETextBox.Text & "',
 BULLET_SIZE = " & BULLET_SIZETextBox.Text & "
 WHERE GUN_Id =" & GUN_IDTextBox.Text & ""

Теперь вы можете увидеть несколько проблем:

  1. GUN_IDTextBox.Text не заключен в конкатенаторы строк &
  2. В конце концов BULLET_CAPACITY двойные / одинарные кавычки меняются местами (обратите внимание на измененные цвета в приведенном выше коде)
  3. Не все параметры заключены в одинарные кавычки но все они имеют тип text
  4. В конце есть пустая строка (вероятно, она должна содержать точку с запятой)

Обратите внимание также на комментарий F-ES Sitecore, чтобы использовать параметризованные запросы вместо этого по соображениям безопасности и избежать некоторых ваших ошибок.