.net中带输出参数的存储过程,返回值没有怎么回事
//表示层的代码
decimal money = 0; //接收钱
LeaveInfoManager.OutAddManager(id, us.EmpID.EmpID, Convert.ToDateTime(txtLeaveDate.Text), out money);
//业务逻辑层
public static void OutAddManager(int id, int empid, DateTime outdate, out decimal money)
{
LeaveInfoService.OutAddManager(id, empid, outdate, out money);
}
//数据访问层
public static void OutAddManager(int id, int empid, DateTime outdate, out decimal money)
{
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@oldid",id),
new SqlParameter("@outdate",outdate),
new SqlParameter("@empid",empid)
};
DBHelper.GetOutProce("[dbo].[leave_Old]", out money, para);
}
//Dbhelp中的代码
public static SqlDataReader GetOutProce(string name, out decimal res, params SqlParameter[] values)
{
try
{
SqlCommand com = new SqlCommand();
com.Connection = Connection;
com.CommandType = CommandType.StoredProcedure;
com.CommandText = name;
com.Parameters.AddRange(values);
com.Parameters.Add("@money", SqlDbType.Decimal);
com.Parameters["@money"].Direction = ParameterDirection.Output;
using (SqlDataReader sdr = com.ExecuteReader())
{
res = Convert.ToDecimal(com.Parameters["@money"].Value);
return sdr;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
connection.Close();
&nb