参数占位符在Webmatrix中导致错误

时间:2016-02-08 20:00:17

标签: parameters webmatrix webmatrix-2 webmatrix-3

每当我尝试在WebMatrix的SELECT,INSERT或UPDATE语句中使用参数占位符时,我都会遇到相同的错误。它在WHERE子句中工作正常。我做错了什么我需要一些帮助。

这是我的代码:

  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 AdmissionDate1=@49, DischargeDate1=@50,  LOC1=@51, ProgramName1=@52, Notes1=@53 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)

您走在正确的轨道上,但您必须在@ 0开始参数占位符,然后是@ 1,@ 2,@ 3 ......等等。你不能跳到@ 49,这就是为什么它说你必须声明那个变量。尝试使用@ 0 thru @ 5,它会起作用。

           var SQLUPDATE = "UPDATE SSI_Screening_New SET AdmissionDate1=@0, DischargeDate1=@1,  LOC1=@2, ProgramName1=@3, Notes1=@4 WHERE (ID) = (@5)";