vs中怎么拿到存储过程的out输出参数?
我是在vs2010中写的项目,用的三层开发,现在我在DAL层想拿到一个SQL数据库存储过程的outPut输出参数,怎么弄?我的一直提示错误。存储过程名(proc_Sele...
我是在vs2010中写的项目,用的三层开发,现在我在DAL层想拿到一个SQL数据库存储过程的outPut输出参数,怎么弄?我的一直提示错误。存储过程名(proc_SelectByPage)
下面是我的代码
public static IList<FinishiWeb> FanPage(int page,int num,ref int pagenum) {
List<FinishiWeb> lf = new List<FinishiWeb>();
SqlParameter[] sqlpar = new SqlParameter[3];
sqlpar[0] = new SqlParameter("@page", DbType.Int16);
sqlpar[0].Value = page;
sqlpar[1] = new SqlParameter("@num", DbType.Int16);
sqlpar[1].Value = num;
sqlpar[2] = new SqlParameter("@PageNum", DbType.Int16);
sqlpar[2].Direction = ParameterDirection.Output;
SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.connectionString, CommandType.StoredProcedure, "proc_SelectByPage", sqlpar);
pagenum = int.Parse(sqlpar[2].Value.ToString());
while (reader.Read())
{
FinishiWeb beiTa = new FinishiWeb();
beiTa.ClientName = reader[1].ToString();
beiTa.Phone1 = reader[2].ToString();
beiTa.WebName1 = reader[3].ToString();
beiTa.ZhuTime1 = Convert.ToDateTime(reader[4]);
beiTa.DaoTime1 = Convert.ToDateTime(reader[5]);
beiTa.BeiZhu1 = reader[6].ToString();
lf.Add(beiTa);
}
return lf;
} 展开
下面是我的代码
public static IList<FinishiWeb> FanPage(int page,int num,ref int pagenum) {
List<FinishiWeb> lf = new List<FinishiWeb>();
SqlParameter[] sqlpar = new SqlParameter[3];
sqlpar[0] = new SqlParameter("@page", DbType.Int16);
sqlpar[0].Value = page;
sqlpar[1] = new SqlParameter("@num", DbType.Int16);
sqlpar[1].Value = num;
sqlpar[2] = new SqlParameter("@PageNum", DbType.Int16);
sqlpar[2].Direction = ParameterDirection.Output;
SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.connectionString, CommandType.StoredProcedure, "proc_SelectByPage", sqlpar);
pagenum = int.Parse(sqlpar[2].Value.ToString());
while (reader.Read())
{
FinishiWeb beiTa = new FinishiWeb();
beiTa.ClientName = reader[1].ToString();
beiTa.Phone1 = reader[2].ToString();
beiTa.WebName1 = reader[3].ToString();
beiTa.ZhuTime1 = Convert.ToDateTime(reader[4]);
beiTa.DaoTime1 = Convert.ToDateTime(reader[5]);
beiTa.BeiZhu1 = reader[6].ToString();
lf.Add(beiTa);
}
return lf;
} 展开
2014-12-26
展开全部
除了这编程之外,还有要看看存储过程是否写好了,,,,在调试器中看看是否正常
追问
谢了,虽然你没说出答案,不过现在已经解决了,在C#中只有先关闭读写器才能拿到SqlParameter的输出参数值
追答
是你聪明。。。。。不过很多时候,调试过了,才更有经验
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询