接收不到存储过程输出参数?

dayang816 dayang816 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
存储过程如下:

ALTER PROCEDURE [dbo].[gettracktype]
@pagecount int output,
@startIndex int,
@endIndex int

AS

select @pagecount=count(typeid) from tracktype

exec('SELECT * FROM (select *,ROW_NUMBER() OVER (ORDER BY typeid desc) AS rn
from tracktype)
AS c WHERE rn>='+@startIndex+' and rn<='+@endIndex+' order by rn ')


数据层代码:

public static List<ShangWin_Model.Tracktype> gettracktype(int startIndex,int endIndex,out int pagecount)
{
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@pagecount",SqlDbType.Int),
new SqlParameter("@startIndex",startIndex),
new SqlParameter("@endIndex",endIndex)

};
paras[0].Direction = ParameterDirection.Output;

List<ShangWin_Model.Tracktype> list = new List<ShangWin_Model.Tracktype>();
using (SqlDataReader dr = DBUtility_ShangWin.DbHelperSQL.ExecuteReader(CommandType.StoredProcedure, "gettracktype",paras))
{
while (dr.Read())
{
ShangWin_Model.Tracktype tt = new ShangWin_Model.Tracktype();
tt.Typeid = (dr["Typeid"] == DBNull.Value) ? 0 : Convert.ToInt32(dr["Typeid"]);
tt.Typename = dr["typename"].ToString();
tt.Addtime = (dr["addtime"] == DBNull.Value) ? Convert.ToDateTime("1900-01-01") : Convert.ToDateTime(dr["addtime"]);
tt.Remark = dr["remark"].ToString();
list.Add(tt);
}
pagecount = Convert.ToInt32(paras[0].Value);
}


return list;

}



pagecount 变量总是0,但在SQL SERVER里面执行存储过程序可以得到值,

...全文

相关推荐

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