SqlDataReader无法获取Procedure的Output参数值?

yibin2006 yibin2006 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
同样的参数去执行一段存储过程
返回类型为DataTable时有值,而返回SqlDataReader时却为空.
public static DataTable ExecuteDataTable(string Text, CommandType commandType, SqlParameter[] para, out int pagecount, out int recordcount)
{
using (SqlConnection conn = new SqlConnection(SqlConnectionString))
{
SqlCommand comm = conn.CreateCommand();

comm.CommandText = Text;
comm.CommandType = commandType;
foreach (SqlParameter p in para)
{
comm.Parameters.Add(p);

}
comm.Parameters.Add("@pagecount", SqlDbType.Int);
comm.Parameters.Add("@RecordCount", SqlDbType.Int);
comm.Parameters["@pagecount"].Direction = ParameterDirection.Output;
comm.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet dst = new DataSet();
da.Fill(dst);
if (conn.State == ConnectionState.Open)
conn.Close();
pagecount = (int)comm.Parameters["@pagecount"].Value; //这里返回正确
recordcount = (int)comm.Parameters["@RecordCount"].Value; //这里也正确
return dst.Tables[0];
}
}
返回类型为SqlDataReader时
public static SqlDataReader ExecuteDataReader(string Text, CommandType commandType, SqlParameter[] para, out int pagecount, out int recordcount)
{
pagecount = 1;
recordcount = 0;
using (SqlConnection conn = new SqlConnection(SqlConnectionString))
{
SqlCommand comm = conn.CreateCommand();

comm.CommandText = Text;
comm.CommandType = commandType;
foreach (SqlParameter p in para)
{
comm.Parameters.Add(p);

}
comm.Parameters.Add("@PageCount", SqlDbType.Int);
comm.Parameters.Add("@RecordCount", SqlDbType.Int);
comm.Parameters["@PageCount"].Direction = ParameterDirection.Output;
comm.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
conn.Open();
using (SqlDataReader dr = comm.ExecuteReader())
{
if (dr.Read())
{
pagecount = (int)comm.Parameters["@pagecount"].Value; //null
recordcount = (int)comm.Parameters["@recordcount"].Value; //null
}
return dr;
}
}
}
为什么会这样呢?
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
yibin2006
.NET社区 62,272 成员 668,968 内容