参数占位符导致 Webmatrix 中出现错误
Parameter Placeholders are causing an error in Webmatrix
每次我尝试在 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、@2、@3...等等。您不能跳转到 @49,这就是为什么它说您必须声明该变量。尝试使用 @0 到 @5,它会起作用。
var SQLUPDATE = "UPDATE SSI_Screening_New SET AdmissionDate1=@0, DischargeDate1=@1, LOC1=@2, ProgramName1=@3, Notes1=@4 WHERE (ID) = (@5)";
每次我尝试在 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、@2、@3...等等。您不能跳转到 @49,这就是为什么它说您必须声明该变量。尝试使用 @0 到 @5,它会起作用。
var SQLUPDATE = "UPDATE SSI_Screening_New SET AdmissionDate1=@0, DischargeDate1=@1, LOC1=@2, ProgramName1=@3, Notes1=@4 WHERE (ID) = (@5)";