首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

存储过程调用 指定了过剩的参数 ,有木有大牛来,100%结贴

2013-09-25 
存储过程调用 指定了过多的参数 ,有木有大牛来,100%结贴set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo ALT

存储过程调用 指定了过多的参数 ,有木有大牛来,100%结贴

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();这步出错啦,提示“指定了过多的参数”,这问题纠结了很久 , 很蛋疼, 求大牛 存储过程?sql sql 存储过程
[解决办法]
你存储过程两个参数为什么调用的时候用三个参数啊?

热点排行