2016-02-08 4 views
0

Каждый раз, когда я пытаюсь использовать заполнитель параметров в инструкции SELECT, INSERT или UPDATE в WebMatrix, я получаю ту же ошибку. Он отлично работает в предложении WHERE. Что я делаю неправильно, мне нужна помощь.Параметр Заполнители вызывают ошибку в Webmatrix

Вот мой код:

if (IsPost && Validation.IsValid()) 
     { 
      Admission1 = Request["AdmDate1"]; 
      Discharge1 = Request["DisDate1"]; 
      LOC1 = Request["LOC1"]; 
      Program1 = Request["ProgramName1"]; 
      Notes = Request["Notes"];   
      var SQLUPDATE = "UPDATE SSI_Screening_New SET [email protected], [email protected], [email protected], [email protected], [email protected] WHERE (ID) = (@0)"; 
      db.Execute(SQLUPDATE, Admission1, Discharge1, LOC1, Program1, Notes, SSId); 

      if (ModelState.IsValid) 
      {  
       Response.Redirect("~/ThankYou"); 
      }    
     } 

Есть ли альтернатива для использования заполнителей параметров в WebMatrix?

Здесь ошибка я получаю каждый раз:

Сведения об исключении: System.Data.SqlClient.SqlException: Необходимо объявить скалярную переменную «@ 49».

Заранее благодарим за вашу помощь!

ответ

1

Вы находитесь на правильном пути, но вы должны запуститься с помощью замеров параметров при @ 0, затем @ 1, @ 2, @ 3 ... и так далее. Вы не можете перейти на @ 49, поэтому он говорит, что вы должны объявить эту переменную. Попробуйте использовать @ 0 thru @ 5, и он будет работать.

  var SQLUPDATE = "UPDATE SSI_Screening_New SET [email protected], [email protected], [email protected], [email protected], [email protected] WHERE (ID) = (@5)"; 
+0

Есть ли другой способ, потому что я не хочу других полей? – tnbumbray

+0

Нет, другого пути нет. При выполнении параметризованного запроса любого типа вы должны начинать с @ 0, @ 1 и так далее. Нет никакого преимущества делать что-либо еще. Каждый запрос или исполнение базы данных получает свой собственный список параметров, поэтому вы не можете или не должны использовать их каким-либо образом. Я отредактировал свой ответ, чтобы показать правильный путь. – Knox

+0

Означает ли это, что мне нужно создать параметр для каждого поля в записи, и я не хочу обновлять каждое поле? У меня есть только несколько полей, которые я хочу обновить. – tnbumbray

Смежные вопросы