每当我尝试在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”。
提前感谢您的帮助!
答案 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)";