網頁

2012年10月6日 星期六

使用ADO.NET實體模型與Linq to Entities實作購物車結帳流程


string id = Session["membersid"].ToString();
        using (bookstoreEntities1 orderins = new bookstoreEntities1())
        {
            order ins = new order();
            ins.membersid = id;
            ins.ordertotal = int.Parse(Label3.Text);
            ins.addressee = TextBox5.Text;
            ins.phone = TextBox4.Text;
            ins.address = TextBox3.Text;
            ins.situationid = 1;
            orderins.AddToorder(ins);
            orderins.SaveChanges();
            //查詢最新一筆訂單
            int orderid = 0;
            var o_id = (from p in orderins.order
                        where p.membersid == id
                        orderby p.orderdate descending
                        select p).First();
            if (o_id.ToString() != null)
            {
                orderid = int.Parse(o_id.orderid.ToString());
            }
            //查shopcar資料準備寫入orderlist
            var s_data = (from p in orderins.shopcar
                          where p.membersid == id
                          select p).ToList();
            //抓shopcar數量與書籍編號 放入q bkid
            int q = 0;
            int bkid = 0;
            if (s_data.Count > 0)
            {
                for (int i = 0; i < s_data.Count; i++)
                {
                    orderlist listins = new orderlist();
                    DropDownList quan = (DropDownList)GridView1.Rows[i].Cells[3].FindControl("DropDownList1");
                    Label booksid = (Label)GridView1.Rows[i].Cells[0].FindControl("Label2");
                    q = int.Parse(quan.SelectedValue);
                    bkid = int.Parse(booksid.Text);
                    listins.orderid = orderid;
                    listins.booksid = bkid;
                    listins.quantity = q;
                    orderins.AddToorderlist(listins);
                }
                //刪除購物車中該會員資料
                var s_del = from p in orderins.shopcar
                            where p.membersid == id
                            select p;
                foreach (var x in s_del)
                {
                    orderins.DeleteObject(x);
                }
                orderins.SaveChanges();
            }
        }

沒有留言:

張貼留言