日期:2014-05-19  浏览次数:20367 次

存储过程 指定的参数太多
为过程或函数   InsertRole   (存储过程名)指定的参数太多。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.Data.SqlClient.SqlException:   为过程或函数   InsertRole   指定的参数太多。


不知道为什么,请多指教?

存储过程:
create   proc   InsertRole  
                        @RoleName   nvarchar(50),
                        @rolepower   nvarchar(300),
                        @columnsetting   nvarchar(300)
as  
          declare   @a   integer

          select   @a=count(*)     from   News_Role   where         @RoleName   =@RoleName  
          if   @a   > 0
          Begin                

                return   0

          End
          Else
          Begin        

                insert   into   News_Role(RoleName,rolepower,columnsetting)   Values(@RoleName,@rolepower,@columnsetting)      


                return   @@Identity          

          end


GO

程序为:

                SqlConnection   con   =   CreateCon();
                SqlCommand   Rcmd   =   new   SqlCommand();
                Rcmd.CommandText   =   "InsertRole ";
                Rcmd.CommandType   =   CommandType.StoredProcedure;
                Rcmd.Connection   =   con;
                SqlParameter[]   Rparas   ={
                                                              new   SqlParameter( "@RoleName ",SqlDbType.NVarChar,50),
                                                              new   SqlParameter( "@rolepower ",SqlDbType.NVarChar,300),
                                                              new   SqlParameter( "@columnsetting ",SqlDbType.NVarChar,300),
                      &