[英]Stored procedure showing an error“ Procedure or function 'Dlete_Selected' expects parameter '@id', which was not supplied”
我用参数调用了存储过程,但显示错误
过程或函数“ Dlete_Selected”期望参数“ @id”(未提供)
这是我的存储过程:
CREATE procedure [dbo].[Delete_Selected]
(@id bigint)
AS
DELETE FROM Properties
WHERE Id = @id
这是我的代码:
protected void btnDeleteSelected_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
cmd.CommandText = "Delete_Selected";
cmd.Parameters.AddWithValue("@id", Request.QueryString["id"]);
cmd.Parameters.Clear();
DataTable dtb = dboMrk.GetDataTableFrmDB(cmd);
if (dtb.Rows.Count > 0)
{
dtlstdata.DataSource = dtb;
dtlstdata.DataBind();
}
}
去掉:
cmd.Parameters.Clear();
您删除刚刚添加的所有参数。
插入后立即清除参数。
cmd.Parameters.AddWithValue("@id", Request.QueryString["id"]);
cmd.Parameters.Clear();
您需要删除cmd.Parameters.Clear();
使它工作。
修改您的代码,
您已经传递了Request.QueryString["id"]
,该返回字符串值。 在sp中,您已指定big int类型。
因此,将其转换,例如Convert.ToInt64(Request.QueryString["id"])
再加上一行
cmd.CommandType = CommandType.StoredProcedure;
在这行之后
cmd.CommandText = "Dlete_Selected";
希望这对您有用。 完成此操作后,如果您卡在任何地方,请发表评论。 谢谢 :)
尝试这个:
protected void btnDeleteSelected_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
cmd.CommandText = "Dlete_Selected";
cmd.Parameters.AddWithValue("@id", Request.QueryString["id"]);
//cmd.Parameters.Clear();
DataTable dtb = dboMrk.GetDataTableFrmDB(cmd);
if (dtb.Rows.Count > 0)
{
dtlstdata.DataSource = dtb;
dtlstdata.DataBind();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.