Webmatrix: передача переменной в запрос SQL
Я создал сайт в Webmatrix (cshtml), который использует цикл для отображения данных из таблицы SQL CE. У меня есть кнопка, которая при нажатии запускает запрос, чтобы обновить статус "чтения" этой записи. У меня проблемы с передачей идентификатора записи в запрос. Это работает, если я устанавливаю статический идентификатор, но когда я делаю идентификатор динамическим, похоже, что он работает (и оповещение показывает, что идентификатор передается переменной), но запись не обновляется.
Мой SQL это:
db.Execute("UPDATE MyTable SET Status='F' WHERE MyTable.MyID=@0", myVar);
И мой HTML (@details. Это набор записей, созданный для цикла):
<form method="post">
<button type="submit" class="btn btn-xs btn-link pull-right" name="optFlag" onclick="javascript:setStatus(@details.MyID)" ><span class="fa fa-flag"></span></button>
</form>
Код JS, который я использую для передачи идентификатора как onclick:
<script>
function setStatus(myVar) {
}
</script>
Пожалуйста, может кто-нибудь сказать мне, если я на правильном пути, и если да, что я делаю не так. Если я полностью не в курсе, каков наилучший способ добиться этого?
Большое спасибо (PS - пожалуйста, дайте мне знать по комментарию / сообщению, если это сообщение не соответствует надлежащим стандартам, чтобы я мог внести изменения без отрицательного результата).
1 ответ
Вы должны переосмыслить свой подход. Когда страница загружена, язык сценариев (бритва C#) будет выполняться ПЕРВЫМ до того, как это сделает javascript. Таким образом, невозможно заставить javascript выполнить вызов БД таким способом.
Вместо этого вы могли бы с помощью javascript загрузить новую страницу, отправить переменную на эту новую страницу в строке запроса или через форму, а затем использовать это значение для выполнения вызова db через ваш код C# бритвы.