首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

SqlDataReader 没法得到存储过程的记录总数

2012-08-14 
SqlDataReader 无法得到存储过程的记录总数C# codepublic static SqlDataReader ExeDr(CommandType Tyle,

SqlDataReader 无法得到存储过程的记录总数

C# code
public static SqlDataReader ExeDr(CommandType Tyle, string SqlStr, params SqlParameter[] parameters)        {            SqlCommand ComDr = GetCommand(Tyle, SqlStr, parameters);            SqlDataReader Dr = ComDr.ExecuteReader(CommandBehavior.CloseConnection);            ComDr.Parameters.Clear();            return Dr;        }        SqlParameter[] parms = new SqlParameter[]             {                 new SqlParameter("@tbName", SqlDbType.VarChar, 255),                new SqlParameter("@tbFields", SqlDbType.VarChar, 1000),                new SqlParameter("@OrderField", SqlDbType.VarChar, 255),                new SqlParameter("@PrimaryField", SqlDbType.VarChar, 255),                new SqlParameter("@PageSize", SqlDbType.Int),                new SqlParameter("@PageIndex", SqlDbType.Int),                new SqlParameter("@OrderType", SqlDbType.Bit),                new SqlParameter("@strWhere", SqlDbType.VarChar, 1500),                new SqlParameter("@Total", SqlDbType.Int),            };            parms[0].Value = "Company";            parms[1].Value = "Id,CompanyName";            parms[2].Value = "AddTime";            parms[3].Value = "Id";            parms[4].Value = PageSize;            parms[5].Value = PageIndex;            parms[6].Value = 0;            parms[7].Value = "State=1";            parms[8].Direction = ParameterDirection.Output;            Total = (int)parms[8].Value;//////////////////******这里出错******///////////////            SqlDataReader Dr = Rsyll.DAL.SqlHelper.ExeDr(CommandType.StoredProcedure, "SqlDataPaging", parms);            while (Dr.Read())            {                                Company_Model One = ReturnCompanyDemo(Dr);                List.Add(One);                //Total = (int)Dr[0];                            }                        Dr.Close();            Dr.Dispose();                        return List;


[解决办法]
你已经用传出参数了:
new SqlParameter("@Total", SqlDbType.Int),
parms[8].Direction = ParameterDirection.Output;

就可以这么获取
//如果存储过程不返回记录信息,就不要用ExecuteReader,用ExecuteNonQuery!
sqlComm.ExecuteNonQuery();
strng c= sqlComm.Parameters["@pageCountint "].Value.ToString()

热点排行