问题描述
此SqlParameterCollection中未包含带有ParameterName“@rowcount”的SqlParameter。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.IndexOutOfRangeException:此SqlParameterCollection中未包含带有ParameterName“@rowcount”的SqlParameter。源错误:行99:SqlCommandcmd=newSqlCommand(sql,con);行100:行101:RowCount=(int)cmd.Parameters["@rowcount"].Value;行102:PageCount=(int)cmd.Parameters["@pagecount"].Value;行103:c#SqlParameter[]Parameters={newSqlParameter("@tablename",SqlDbType.NVarChar,50),newSqlParameter("@fieldname",SqlDbType.NVarChar,50),newSqlParameter("@pagesize",SqlDbType.Int),newSqlParameter("@currentpage",SqlDbType.Int),newSqlParameter("@orderid",SqlDbType.NVarChar,50),newSqlParameter("@sort",SqlDbType.Int),newSqlParameter("@rowcount",SqlDbType.Int),newSqlParameter("@pagecount",SqlDbType.Int)};Parameters[0].Value=q.Table;//表名Parameters[1].Value="*";//字段名Parameters[2].Value=q.PageSize;//每页显示条数Parameters[3].Value=q.CurrentPage;//当前页数Parameters[4].Value="BuildErrorID";//主键Parameters[5].Value=1;//排序方式,0表示降序,1表示升序Parameters[6].Direction=ParameterDirection.Output;//总记录数Parameters[7].Direction=ParameterDirection.Output;//总页数存储过程:ALTERPROCEDURE[dbo].[PageList]@tablenamenvarchar(50),@fieldnamenvarchar(50)='*',@pagesizeint,--每页显示记录条数@currentpageint,--第几页@orderidnvarchar(50),--主键排序@sortint,--排序方式,1表示升序,0表示降序排列@rowcountintoutput,--总记录数,共有几条信息@pagecountintoutput--总页数,共有多少页ASdeclare@countsqlnvarchar(50)declare@sqlnvarchar(200)declare@subsqlnvarchar(100)--notin子sql语句declare@tmpOrderidnvarchar(50)--返回总记录数,并赋值给输出参数@rowcountset@countsql='select@totalcount=count(*)from'+@tablenameexecsp_executesql@countsql,N'@totalcountintout',@rowcountoutput
解决方案
解决方案二:
debug看下,是不是就缺output的