我已经调用了一个带有参数的存储过程,但是它显示了一个错误。
过程或函数'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();
}
}发布于 2017-04-19 07:03:28
移除:
cmd.Parameters.Clear();删除刚才添加的所有参数。
发布于 2017-04-19 07:03:54
参数在插入后立即清除。
cmd.Parameters.AddWithValue("@id", Request.QueryString["id"]);
cmd.Parameters.Clear();您需要删除cmd.Parameters.Clear();以使其工作。
发布于 2017-04-19 07:06:39
修改你的代码,
您已经传递了Request.QueryString["id"],它返回字符串值。在sp中,您指定了大int类型。
所以转换它,就像,Convert.ToInt64(Request.QueryString["id"])
再加上一行,
cmd.CommandType = CommandType.StoredProcedure;在这行之后
cmd.CommandText = "Dlete_Selected";希望这对你有用。这样做后,如果你停留在任何地方,那么请评论。谢谢您:)
https://stackoverflow.com/questions/43488640
复制相似问题