存储过程调用 指定了过多的参数 ,有木有大牛来,100%结贴,该如何解决
存储过程调用 指定了过多的参数 ,有木有大牛来,100%结贴
后台调用的关键代码如下:
为什么 cmd.ExecuteNonQuery();这步出错啦,提示“指定了过多的参数”,这问题纠结了很久 , 很蛋疼, 求大牛
------解决方案--------------------
你存储过程两个参数为什么调用的时候用三个参数啊?
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[Up_CheckManagerSession]
@userId varchar(20),
@ItemUrl varchar(50)
as
declare @i int ;
declare @ItemList varchar(300);
declare @ItemId varchar (10)
select @ItemId=ItemId from TR_Item where ItemUrl=@ItemUrl
select @ItemList=ItemList from ManagerTb where UserId=@userId
declare @sql nvarchar(3000)
declare @ii int
set @sql ='select @i= count(1) from ManagerTb where userId='''+@userId+''' and '''+@ItemId+''' in('+@ItemList+')'
exec sp_executesql @sql ,N'@i int out',@ii out
后台调用的关键代码如下:
SqlCommand cmd = new SqlCommand("Up_CheckManagerSession", con); //调用存储过程
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.Parameters.Add("@ItemUrl", patp);
cmd.Parameters.Add("@userId", context.Session["ManagerId"].ToString());
cmd.Parameters.Add("@ii", "").Direction = ParameterDirection.Output;//获取存储过程的返回值
cmd.ExecuteNonQuery();
string value = cmd.Parameters["@ii"].Value.ToString();//把返回值赋值给value
为什么 cmd.ExecuteNonQuery();这步出错啦,提示“指定了过多的参数”,这问题纠结了很久 , 很蛋疼, 求大牛
------解决方案--------------------
你存储过程两个参数为什么调用的时候用三个参数啊?