نمایش نتایج 1 تا 2 از 2

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

  1. #1

    نحوه اجرای 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 برار مقدار تکست باکسه
    و در هر صورت کد اجرا نمیشه ممنون مشم کمکم کنید

  2. #2

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

    برای ستون جمع اسمی تعیین نکردید پس یک نام مستعار اضافه کنید
    SELECT ID_sh, SUM(price_column) as price_columnFROM tbl_mytable


    در ضمن از لایه UI یعنی در رویداد button نباید به لایه DAL دسترسی داشته باشید.

تاپیک های مشابه

  1. در مورد نحوه آدرس دهی در ASP.net
    نوشته شده توسط fatemehja در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: چهارشنبه 27 شهریور 1387, 07:48 صبح
  2. سوال: کد مربوط به جستجو در پایگاه داده در ASP.NET با پشتیبانی C#‎
    نوشته شده توسط sadaf_m در بخش ASP.NET Web Forms
    پاسخ: 9
    آخرین پست: شنبه 01 تیر 1387, 09:44 صبح
  3. سئوال در مورد نحوه ارتباط برنامه های asp.net با بانک اطلاعا
    نوشته شده توسط jahani1148 در بخش برنامه نویسی در Delphi Prism
    پاسخ: 6
    آخرین پست: یک شنبه 19 خرداد 1387, 12:03 عصر
  4. مشکل تعریف متغییر در Asp.net با VB
    نوشته شده توسط mohsen_j_1990 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: دوشنبه 02 اردیبهشت 1387, 11:20 صبح
  5. نحوه لینک دادن در Asp.net
    نوشته شده توسط hassan_kahrizy در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: جمعه 02 شهریور 1386, 22:58 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •