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

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

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

درج چندین رکورد در دیتابیس با entity framework

  • دوشنبه 29 تیر 1394
  • 20:12
تشکر میکنم

با سلام.

می خوام تعداد ردیف های موجود در gridview در دیتابیس ذخیره شود.

کد زیر را نوشتم اما خطا می دهد:

 for (int i = 0; i < GridView1.Rows.Count; i++)
            {
              //  OrderDetail.OrderDetailID = OrderDetailsID++;
                OrderDetail.OrderID = OrderID;
                OrderDetail.ProductID = Convert.ToInt32(GridView1.Rows[i].Cells[1].Text);
                TextBox lbl = (GridView1.Rows[i].FindControl("txtTedad") as TextBox);
                OrderDetail.Tedad = Convert.ToInt32(lbl.Text);
                OrderDetail.Gheymat = Convert.ToInt32(GridView1.Rows[i].Cells[4].Text);
                shop.OrderDetails.Add(OrderDetail);
                shop.SaveChanges();


            }

لطفاً راهنمایی کنید.

ممنون

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

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

سجاد باقرزاده

عضویت از 1392/02/24

  • سه شنبه 30 تیر 1394
  • 08:05

کدتون خوانا نیست، لطفا کد را داخل بخش Code قرار دهید.

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • سه شنبه 30 تیر 1394
  • 19:41

متوجه نمی شوم. منظورتون از بخش code کجا است؟

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • سه شنبه 30 تیر 1394
  • 20:49

اجناسی را به سبد خرید اضافه می کنم و این سبد خرید در یک gridview نمایش داده می شود.

حالا می خواهم پس از زدن ثبت نهایی ، کل اجناسی که در gridview هست ذخیره شود.

البته با entity framework

با تشکر

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • چهارشنبه 31 تیر 1394
  • 06:59
 for (int i = 0; i < GridView1.Rows.Count; i++)
            {
              //  OrderDetail.OrderDetailID = OrderDetailsID++;
                OrderDetail.OrderID = OrderID;
                OrderDetail.ProductID = Convert.ToInt32(GridView1.Rows[i].Cells[1].Text);
                TextBox lbl = (GridView1.Rows[i].FindControl("txtTedad") as TextBox);
                OrderDetail.Tedad = Convert.ToInt32(lbl.Text);
                OrderDetail.Gheymat = Convert.ToInt32(GridView1.Rows[i].Cells[4].Text);
                shop.OrderDetails.Add(OrderDetail);
                shop.SaveChanges();


       

 

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • چهارشنبه 31 تیر 1394
  • 07:03

تمامی مقادیر داخل جدول ProductDetail به صورت صحیح و کامل پر میشود؟

کد خود یکبار debug کنید و با دقت تک تک خط ها را چک کنید. در صورتی حل نشدن مشکل پیام خطا را برای ما بنویسید.

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • چهارشنبه 31 تیر 1394
  • 19:38

با تشکر از جواب شما

وقتی یک جنس درون gridview وجود دارد درست insert می شود اما وقتی بیش از یک جنس باشد پیغام زیر می دهد:

با تشکر

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • شنبه 3 مرداد 1394
  • 07:41

برای ثبت جدول orderdetails شما نباید کلید اصلی جدول که AutoNumber است را اضافه کنید. OrderDetailID در جدول دیتابیس باید بصورت AutoNumber و Primary Key باشد. داخل حلقهfor کد OrderDetailID را حذف کنید و داخل if , else بالا نیز به همین صورت . در صورتی که می خواهید ویرایش و افزودن را یک جا انجام دهید بهتر است چک کنید در صورتی که در جدول OrderDetail  محصولی با کد ProductID مورد نظر موجود بود حذف شود و سپس عمل افزودن انجام شود.

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

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

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

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