SqlParameter[] p =
{
                    SqlHelper.MakeParam("@Total",SqlDbType.Int,4,ParameterDirection.Output,null),
                   SqlHelper.MakeInParam("@PageNumber",PageNumber),
 SqlHelper.MakeInParam("@PageSize",PageSize)
};
            IDataReader dr = SqlHelper.ExecuteReader(ConnectionString, "spName", p);
            Total = (int)p[0].Value;
            return dr;这样写来提示:(int)p[0].Value 这里错误,如果用:ExecuteDataset 就可以.但我想用ExecuteReader,请问怎么写才可以取得这值呢?在M$里只看到这一句: 如果您使用参数数组来返回输出值,请记住您必须在关闭 SqlDataReader 对象后提取这些值(使用 SqlParameter 值 属性)。

解决方案 »

  1.   

    >>>如果您使用参数数组来返回输出值,请记住您必须在关闭 SqlDataReader 对象后提取这些值IDataReader dr = SqlHelper.ExecuteReader(ConnectionString, "spName", p);            return dr;...
    dr.Close();
    Total = (int)p[0].Value;上面说的明白呢或者从你的SELECT里返回这个数据,这里你只要看DataReader就可以了