求教:此 SqlParameterCollection 中未包含带有 ParameterName“@rowcount”的 SqlParameter。
此 SqlParameterCollection 中未包含带有 ParameterName“@rowcount”的 SqlParameter。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IndexOutOfRangeException: 此 SqlParameterCollection 中未包含带有 ParameterName“@rowcount”的 SqlParameter。
源错误:
行 99: SqlCommand cmd = new SqlCommand(sql, con);
行 100:
行 101: RowCount = (int)cmd.Parameters["@rowcount"].Value;
行 102: PageCount = (int)cmd.Parameters["@pagecount"].Value;
行 103:
c#
SqlParameter[] Parameters ={
new SqlParameter("@tablename",SqlDbType.NVarChar,50),
new SqlParameter("@fieldname",SqlDbType.NVarChar,50),
new SqlParameter("@pagesize",SqlDbType.Int),
new SqlParameter("@currentpage",SqlDbType.Int),
new SqlParameter("@orderid",SqlDbType.NVarChar,50),
new SqlParameter("@sort",SqlDbType.Int),
new SqlParameter("@rowcount",SqlDbType.Int),
new SqlParameter("@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;//总页数
存储过程:
ALTER PROCEDURE [dbo].[PageList]
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int,--每页显示记录条数
@currentpage int,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
@rowcount int output,--总记录数,共有几条信息
@pagecount int output--总页数,共有多少页
AS
declare @countsql nvarchar(50)
declare @sql nvarchar(200)
declare @subsql nvarchar(100)--not in子sql语句
declare @tmpOrderid nvarchar(50)
--返回总记录数,并赋值给输出参数@rowcount
set @countsql='select @totalcount=count(*) from '+@tablename
exec sp_executesql @countsql,N'@totalcount int out',@rowcount output
--------------------编程问答-------------------- debug看下,是不是就缺output的
补充:.NET技术 , .NET Framework