مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ali.majed

عضویت از 1394/09/15

مشکل در سبد خرید

  • پنجشنبه 30 اردیبهشت 1395
  • 12:28
تشکر میکنم

با عرض سلام

من یک سبد خرید در asp.net طراحی کردم که با انتخاب کالا، کالا به سبد خرید اضافه می شود . در یک ستون از repeater سبد خرید ، یک dropdownlist قرار داده ام که کاربر ، تعداد کالای مورد نظر را انتخاب کند . مشکل من این است که می خواهم با تغییر تعداد کالا ، قیمت کل تغییر کند . این کد من است :

protected void btnAddBasket_Click(object sender, EventArgs e)
        {
            string id = ((Button)sender).CommandArgument;
            MasterDCDataContext db = new MasterDCDataContext();
            var q = db.Products.Where(c => c.PrID == int.Parse(id)).Single();
            PrTitle = q.PrName;
            prType = q.PrType;
            PrFactory = q.PrCompany;
            PrImage = q.PrImage;
            PrPrice = q.PrPrice;
            if (Session["basket"] == null)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("PrID");
                dt.Columns.Add("PrImage");
                dt.Columns.Add("PrTitle");
                dt.Columns.Add("PrPrice");
                dt.Columns.Add("PrTotalPrice");
                dt.Columns.Add("PrCompany");
                dt.Columns.Add("PrType");

                DataRow dr = dt.Rows.Add();
                dr["PrID"] = Request.QueryString["PrID"];
                dr["PrImage"] = PrImage;
                dr["PrTitle"] = PrTitle;
                dr["PrPrice"] = PrPrice;
                dr["PrTotalPrice"] = PrPrice * PrCount;
                dr["PrCompany"] = PrFactory;
                dr["PrType"] = prType;

                Session["basket"] = dt;
                int tpCount = 0;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    tpCount += Convert.ToInt32(dr["PrPrice"]);
                }
                lblTotalPrice.Text = tpCount.ToString();
            }
            else
            {
                DataTable dt = (DataTable)Session["basket"];
                DataRow dr = dt.Rows.Add();
                dr["PrID"] = Request.QueryString["PrID"];
                dr["PrImage"] = PrImage;
                dr["PrTitle"] = PrTitle;
                dr["PrPrice"] = PrPrice;
                dr["PrTotalPrice"] = PrPrice * PrCount;
                dr["PrCompany"] = PrFactory;
                dr["PrType"] = prType;
                //dt.Rows.Add(dr);
                Session["basket"] = dt;
                int tpCount = 0;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    tpCount += Convert.ToInt32(dr["PrPrice"]);
                }
                lblTotalPrice.Text = tpCount.ToString();
            }
        }



 protected void ddlCount_dataBound(object sender,EventArgs e)
        {
            DropDownList ddl = (DropDownList)(sender);
            for(int i = 1;i < 10 ; i++)
            {
                ddl.Items.Add(new ListItem(i.ToString(), i.ToString()));
            }
            PrCount = Convert.ToInt32(ddl.SelectedIndex);
        }

اما با تغییر تعداد کالا توسط dropdownlist با خطای زیر مواجه می شوم :

Column 'PrTotalPrice' does not belong to table .

آیا لازم است در جدول پایگاه داده ، ستون PrTotalPrice اضافه شود ، آیا راهی است که بدون افزودن ستون در جدول پایگاه داده ، مشکل من برطرف شود و قیمت کل نمایش داده شود

با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 30 اردیبهشت 1395
  • 18:16

این مشکل مربوط یه کدهاتون هست و نیازی به ستون اضافه در بانک نیست

باید کد رو Trace کنید تا مشکل پیدا بشه

خط به خط اجرا کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)