存储过程dll类的代码帮助

时间:2011-04-21 10:27:32

标签: c#

我正在为存储过程制作dll类...帮助我纠正它...我的老板说我缺少返回的参数值但我没有得到任何纠正它...

public class transactionService

{

SqlConnection cs;


private void OpenConnection()

{

cs = new SqlConnection();

cs.ConnectionString = "Data Source=IRIS-CSG-174;Initial Catalog=library_system;Integrated Security=True";

cs.Open();

}

public membership_details calculatefine()

{

OpenConnection();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "Exec member_fine_detail";

cmd.Parameters.Add(new SqlParameter("member_id", SqlDbType.Int));



membership_details myObjec = new membership_details();

cmd.ExecuteNonQuery();

SqlDataReader sdr = cmd.ExecuteReader();

myObjec.fine_per_day = 0;


return myObjec;

帮我纠正这段代码...我试图按照member_id获取fne_per_day并在此引用之后添加到项目中的返回表单,根据member_id计算fine_per_day ...因为creteria就像member_id = 5 ,membership_desc = silver,gol,platinum,fineperday = 30或20or10

1 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西才能返回存储过程的out参数:

public membership_details calculatefine()
{

     OpenConnection();

     SqlCommand cmd = new SqlCommand();

     cmd.CommandType = CommandType.StoredProcedure;

     cmd.CommandText = "Exec member_fine_detail";

     cmd.Parameters.Add(new SqlParameter("@member_id", SqlDbType.Int));

     //Sql parameter corresponding to the output parameter
     cmd.Parameters.Add(new SqlParameter("@fine_per_day", SqlDbType.Int));
     cmd.Parameters[cmd.Parameters.Count - 1].Direction = ParameterDirection.Output;

     //execute the stored procedure
     cmd.ExecuteNonQuery();

     //obtain the value for the output parameter
     myObjec.fine_per_day = (int)cmd.Parameters["@fine_per_day"].Value;

     return myObjec;
}