⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mycart.aspx.cs

📁 ASP.net+sql server2000编写的完整鲜花在线销售系统
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Web.SessionState;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using System.Configuration;

namespace flower.front.cart
{
	/// <summary>
	/// myCart 的摘要说明。
	/// </summary>
	public class myCart : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.DataGrid ShoppingCartDlt;
		protected System.Web.UI.WebControls.Button update;
		protected System.Web.UI.WebControls.Button CheckOut;
		protected System.Web.UI.WebControls.Label label;
		string AddID;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面

			//查看用户是否已经登录

				if(Session["logined"]==null || Session["logined"].ToString()!="true")
				{
					Response.Write("<script>alert('您还没有登录,请先登录!');history.back();</script>");
					return;                  
				}

		
			if(!IsPostBack)
			{
				
				if(Request.Params["mode"]=="view")  //检查是否为直接查看购物车
				{
					ViewShoppingCart();
					Caculator();
				}
				if(Request.Params["AddID"]!=null)//从其他页进入该页时,是这样,因为这不是从其他页进入本页,因此将三行代码移到下面.
				{
					AddID=Request.Params["AddID"];
					//AddID="1";
					UpdateShoppingCart();
					Caculator();
				}
			}
		}

		public void CreateCartTable()   //创建购物表ProdID,ProdCount,ProName,UnitPrice,TotalPrice,IsDeleted,此表绑定到DataGrid.
		{
			DataSet myDS=new DataSet();
			DataTable myDT=new DataTable("CartTable");
			myDS.Tables.Add(myDT);
			DataColumn myDC;
			
			myDC=new DataColumn("ProdID",System.Type.GetType("System.Int32"));
			myDS.Tables["CartTable"].Columns.Add(myDC);

			myDC=new DataColumn("ProdCount",System.Type.GetType("System.Int32"));
			myDC.DefaultValue=1;
			myDS.Tables["CartTable"].Columns.Add(myDC);
			
			myDC=new DataColumn("ProName",System.Type.GetType("System.String"));
			myDS.Tables["CartTable"].Columns.Add(myDC);

			myDC=new DataColumn("UnitPrice",System.Type.GetType("System.Double"));			
			myDS.Tables["CartTable"].Columns.Add(myDC);

			myDC=new DataColumn("TotalPrice",System.Type.GetType("System.Double"));
			myDS.Tables["CartTable"].Columns.Add(myDC);

			myDC=new DataColumn("Unit",System.Type.GetType("System.String"));
			myDS.Tables["CartTable"].Columns.Add(myDC);

			myDC=new DataColumn("IsDeleted",System.Type.GetType("System.String"));
			myDC.DefaultValue=0;
			myDS.Tables["CartTable"].Columns.Add(myDC);

			Session["myCartTable"]=myDT;
			ShoppingCartDlt.DataSource=myDS.Tables["CartTable"].DefaultView;
			ShoppingCartDlt.DataBind();
		}

		public void UpdateShoppingCart()//更新购物车
		{
			if(Session["myCartTable"]==null)
				CreateCartTable();//调用函数CreateCartTable( )新建一个DataTable 

			WriteShoppingCart();   //如果购物蓝中已有商品,则需要对购物信息表DataTable进行更新,并将其绑定到ShoppingCartDlt
		
		}

		public void ViewShoppingCart() //查看购物车
		{
			if(Session["myCartTable"]!=null)
			{
				DataTable viewTable=new DataTable("nowCartTable");
				viewTable=(DataTable)Session["myCartTable"];
				ShoppingCartDlt.DataSource=viewTable.DefaultView;
				ShoppingCartDlt.DataBind();
			}
		}

		public void WriteShoppingCart()
		{
			if(Request.Params["mode"]!="view")   //检查是否是直接查看购物车,如果直接查看,就不再写MYCARTTABLE
			{
				DataTable nowTable=new DataTable("nowCartTable");
				nowTable=(DataTable)Session["myCartTable"];
				int pn=nowTable.Rows.Count;
				int i=0;
				bool hasone=false;
				int nowProdID;
				while(i<pn&&!hasone)
				{
					nowProdID=Int32.Parse(nowTable.Rows[i][0].ToString());
					if(nowProdID==Int32.Parse(AddID))  //判断购物信息表中,是否存有当前放入商品. if( nowProdID==Int32.Parse( AddID ) )     
					{
						hasone=true;
					}
					else
					{
						i++;
					}
				}

				if(hasone)
				{
					//如果已有该商品,则 hasone=true,更改该数据行 
					DataRow oldDR;
					oldDR=nowTable.Rows[i];
					oldDR["ProdCount"]=Int32.Parse(oldDR["ProdCount"].ToString())+1;
					oldDR["TotalPrice"]=Int32.Parse(oldDR["ProdCount"].ToString())*Double.Parse(oldDR["UnitPrice"].ToString());
				}
				else
				{
					//如果没有该商品,在表中新加入一行.
					DataRow newDR;
					Double unitp;
					/*
					string strConn="provider=microsoft.jet.oledb.4.0;data source="+MapPath("cart.mdb");
					OleDbConnection myConn=new OleDbConnection(strConn);
					string strComm="select *  from cart where prodid="+AddID+"";

					OleDbDataAdapter myDA=new OleDbDataAdapter(strComm,myConn);
					DataSet myDS=new DataSet();
					
					myDA.Fill(myDS,"AddP");
					*/

					string strComm="select * from flower where id="+AddID+"";
					DBOP myDBOP=new DBOP();
					DataSet myDS=new DataSet();
					myDS=myDBOP.mySelect(strComm);
					
					newDR=nowTable.NewRow();
					newDR["ProdID"]=AddID;
					newDR["ProName"]=myDS.Tables[0].Rows[0][1].ToString();
					//默认ProdCount是1,所以不用设置.
					unitp=Double.Parse(myDS.Tables[0].Rows[0][3].ToString());
					newDR["UnitPrice"]=unitp;
					newDR["Unit"]=myDS.Tables[0].Rows[0]["unit"].ToString().Trim();
					newDR["TotalPrice"]=unitp;//第一次读库,所以总价格和单价是一样的. 

					nowTable.Rows.Add(newDR);
					//myConn.Close();  myDA会自动关闭连接,所以此句可不要.                    					
				}

				Session["myCartTable"]=nowTable;//将更新后的购物表保存到会话.
				ShoppingCartDlt.DataSource=nowTable.DefaultView;
				ShoppingCartDlt.DataBind();  //将更新后的 DataTable绑定到ShoppingCartDlt
				
			}
		}

		public void Caculator()//结算
		{
			if(Session["myCartTable"]!=null)   //购物车是否为空
			{
				int h;
				Double TotalPri=0;
				DataTable nowTable3=new DataTable("CartTable3");
				nowTable3=(DataTable)Session["myCartTable"];
				if(nowTable3.Rows.Count>0)       //返回购物车中是否有货物 
				{
					for(h=1;h<=nowTable3.Rows.Count;h++)   
					{
						TotalPri=TotalPri+Int32.Parse(nowTable3.Rows[h-1][4].ToString());
					}
					label.Text="总计"+TotalPri.ToString()+"元";
				}
			}
		}

		public void Update()//更新我的购物车
		{
			//int deleteid; 末使用此变量。
			int i,j,k;
			j=0;
			k=0;
			ArrayList deleteItem=new ArrayList(10);
			System.Web.UI.WebControls.DataGridItem _item;			
		
			DataTable nowTable2=new DataTable("nowCartTable2");
			nowTable2=(DataTable)Session["myCartTable"];
			for(i=0;i<=this.ShoppingCartDlt.Items .Count-1;i++)
			{
				_item=this.ShoppingCartDlt.Items[i];

				TextBox CountText=(TextBox)this.ShoppingCartDlt.Items[i].FindControl("CountTb");
				CheckBox ProductIDCheck=(CheckBox)this.ShoppingCartDlt.Items[i].FindControl("chkProductID");
				
				if(ProductIDCheck.Checked)
				{
					nowTable2.Rows[i][5]=1;
				}
				else
				{
					nowTable2.Rows[i][1]=Int32.Parse(CountText.Text.ToString());
					nowTable2.Rows[i][4]=Int32.Parse(nowTable2.Rows[i][1].ToString())*Double.Parse(nowTable2.Rows[i][3].ToString());
				}
			}
			string strExpr="IsDeleted>0";
			//http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfSystemDataDataTableClassSelectTopic.asp   
			DataRow[] foundRows = nowTable2.Select( strExpr );
			for( int m = 0;
				m < foundRows.Length;
				m ++ )   
			{
				//Console.WriteLine( foundRows[i][0] );//测试用
				foundRows[m].Delete( );
			}

			ShoppingCartDlt.DataSource = nowTable2.DefaultView;
			ShoppingCartDlt.DataBind( );
			Session["myCartTable"] = nowTable2;
			Caculator( );
		}

		private void update_Click( object sender, System.EventArgs e )  
		{
			if(ShoppingCartDlt.Items.Count>0)
			{
				Update( );
			}
		}
		private void CheckOut_Click( object sender, System.EventArgs e )  
		{
			if(ShoppingCartDlt.Items.Count>0)
			{
				Update( );
				Order myOrder=new Order();
				Order.OrderStru myOrderStru=new Order.OrderStru();
				myOrderStru.id=myOrder.GetOrderMaxID()+1;
				myOrderStru.name="order"+myOrderStru.id.ToString().Trim();
				myOrderStru.userid=(int)Session["userid"];
				myOrderStru.state="末处理";
				myOrderStru.beginday=System.DateTime.Now.ToString().Trim() ;
				myOrderStru.endday=System.DateTime.Now.ToString().Trim() ;
				//myOrderStru.id=myOrder.GetOrderItemsMaxID()+1;
				//将订单信息加入orders表。
				myOrder.AddOrderDetail(myOrderStru);
				Order.OrderItemsStru myOrderItemsStru=new Order.OrderItemsStru();
				for(int i=0;i<ShoppingCartDlt.Items.Count;i++)
				{
					myOrderItemsStru.id=myOrder.GetOrderItemsMaxID()+1;
					myOrderItemsStru.orderid=myOrderStru.id;
					myOrderItemsStru.flowerid=Convert.ToInt32(ShoppingCartDlt.Items[i].Cells[1].Text.Trim());
					myOrderItemsStru.flowername=ShoppingCartDlt.Items[i].Cells[2].Text.Trim();
					myOrderItemsStru.count=Convert.ToInt32(((TextBox)ShoppingCartDlt.Items[i].FindControl("CountTb")).Text);
					myOrderItemsStru.outprice=Convert.ToInt32(ShoppingCartDlt.Items[i].Cells[3].Text.Trim());
					myOrderItemsStru.unit=ShoppingCartDlt.Items[i].Cells[5].Text.Trim();
					//将订单条目内容加入orderitems表。
					myOrder.AddOrderItems(myOrderItemsStru);			
				}
			
				Response.Redirect( "/flower/front/order/viewallorders.aspx?view=Last" );
			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.update.Click += new System.EventHandler(this.update_Click);
			this.CheckOut.Click += new System.EventHandler(this.CheckOut_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -