Click here to Skip to main content
15,904,926 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
in a three layer application how can I send returned fields from sdr in business layer to higher layer?
I tried this using a class but I want know if there is another way except declaring a class for each select statement in data layer.

In this example I used PaySlip Class.
C#
public Class_PaySlip ReadPaySlip(string prsnlcod,string company,int _month,int _year)
        {
            lasterror = string.Empty;
            var lst = new List<SqlParameter>();
            lst.Add(new SqlParameter("@prsnlcod", prsnlcod));
            lst.Add(new SqlParameter("@company", company));
            lst.Add(new SqlParameter("@month", _month));
            lst.Add(new SqlParameter("@year", _year));

            var PaySlip = new Class_PaySlip();
            try
            {
                using (SqlDataReader sdr = dbh.Read("reportpersonpaySlip", CommandType.SP, lst))
                {
                    if (dbh.lasError == string.Empty)
                    {
                        if (sdr != null)
                        {
                            if (sdr.Read())
                            {
                                PaySlip = (CatchPaySlip(sdr,prsnlcod,company,_month,_year));
                            }
                            sdr.Close();
                            return PaySlip;
                        }
.                       
.
.

Initilizing Payslipclass:
C#
 private Class_PaySlip CatchPaySlip(SqlDataReader sdr,string prsnlcod,string company,int _month,int _year)
        {
            Class_PaySlip PaySlip = new Class_PaySlip();
            PaySlip.Gender = ((DBNull.Value) == sdr["Gender"]) ? string.Empty : sdr["Gender"].ToString();
            PaySlip.EmpType = ((DBNull.Value) == sdr["EmploymentType"]) ? string.Empty : sdr["EmploymentType"].ToString();
.
.
.
}
Posted
Updated 3-Sep-14 5:07am
v2

1 solution

A common way to send multiple pieces of data back up the chain is to return a DataTable or a DataSet. That will be much easier than declaring classes for everything you want to return.
 
Share this answer
 
Comments
mit62 6-Sep-14 10:00am    
thanks but performance of which one is better?class or datatable?
ZurdoDev 6-Sep-14 10:51am    
Depends on many different factors. Since you have to get it from the db already returning a datatable is likely faster.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900