سوال: نحوه اجرای procedure در asp.net با معماری سه لایه

ساخت وبلاگ
سلام دوستان من یک پروزه asp.net دارم با معماری سه لایه . که برای دستورات درج و حذف و انتخاب و جستجوی داده ها از کلاس sqlDBHelper استفاده میکنم. همه چیز خوبه و درست کار میکنه ولی برای اجرای یک procedure که کارش درج یا حذف یا جستجو نیست بلکه جمع کردن مقدار یک ستون از جدولم هست با مشکل برخوردم نمیدونم مشکل در کلاس sqlDBHelper هست یا لایه DAL یا چیز دیگه است. کد ها رو این طوری نوشتم.جدولم چهار تا ستون داره.
procedure من این طوری هست:
ALTER PROCEDURE [dbo].[GetSum]
(@ID_sh int)
AS
SELECT ID_sh, SUM(price_column)
FROM tbl_mytable
WHERE @ID_sh = ID_sh
GROUP BY ID_sh
RETURN

و کلاس موجودیت :
public class Payment
{
private int _ID_sh;
public int ID_sh
{
get { return _ID_sh; }
set { _ID_sh = value; }
}

private decimal _price_column;
public decimal price_column
{
get { return _price_column; }
set { _price_column = value; }
}

private string _name;
public string name
{
get { return _name; }
set { _name = value; }
}

private string _family;
public string family
{
get { return _family; }
set { _family = value; }
}
}

و کلاس DAL
public List<Payment> GetSum(string id_sh)
{
List<Payment> Pay= null;
SqlParameter[] param = new SqlParameter[]
{
new SqlParameter("@ID_sh",id_sh)

};
using (DataTable table = SqlDBHelper.ExecuteSelectParameterCommand("GetSum" , CommandType.StoredProcedure, param))
{

if (table.Rows.Count > 0)
{
PaymentList= new List<Payment>();
foreach (DataRow row in table.Rows)
{
Payment Pay = new Payment ();


PaymentList.Add(Pay );
}
}
else
{
return PaymentList;
}
}
return PaymentList;
}

و کلاس BLL
public List<Payment> GetSum(string id_sh)
{
return PaymentDB.GetSum(shp);
}


و حالا من روی رویداد کلیک دکمه این کد رو نوشتم:
 protected void btn_ShowSum_Click(object sender, ImageClickEventArgs e)
{
DAL.Payment pay = new DAL.Payment ();
shp = lbl_kod.Text + txt_sh.Text;
pay.ID_sh = shp;

PaymentDB.GetSum(pay.ID_sh);
txtShowSum.Text = pay.price_column.ToString();
}

مشکل این جاست که وقتی کد های زیر رو اضافه میکنم به کلاس DAL
pay.ID_sh = Convert.ToInt32(row["ID_sh"]);
pay.price_column = Convert.Todecimal(row["price_column"]);

خطا میده که ستون price_column متعلق به جدول نیست و وقتی که حذف میکنمشون مقدار سه ستون صفر میشه و فقط مقدار ستون ID_sh برار مقدار تکست باکسه
و در هر صورت کد اجرا نمیشه ممنون مشم کمکم کنید
تمپوs...
ما را در سایت تمپوs دنبال می کنید

برچسب : نویسنده : خنج tempos بازدید : 121 تاريخ : جمعه 5 آبان 1396 ساعت: 13:46