构想: 在session里定义一个datatable,用作购物车。 我觉得用datatable做购物车思路比较简单,当然还有用arraylist,如petshop, B.aspx 代码如下,已通过测试,可以运行。 ![]() <% @ Page Language="C#" %>![]() <% @ import Namespace="System.Data" %>![]() <% @ import Namespace="System.Data.OleDb" %>![]() <script runat="server">![]() ![]() DataTable Cart = new DataTable(); DataRow dr;![]() ![]() private void Page_Load(Object Src,EventArgs E)![]() ![]() { string ls_pid;![]() //在seesion中是否已经购物车,如果没有就建立 if(Session["ShopingCart"]==null)![]() ![]() {![]() Cart.Columns.Add(new DataColumn("Pid",typeof(string))); Cart.Columns.Add(new DataColumn("pname",typeof(string))); Cart.Columns.Add(new DataColumn("qty",typeof(string))); Cart.Columns.Add(new DataColumn("pprice",typeof(string)));![]() Session["ShoppingCart"]=Cart;![]() } else![]() ![]() {![]() Cart=(DataTable)Session["ShoppingCart"]; }![]() ![]() ![]() //是否有货品ID传过来,有就添加然后显示购物车,没有就直接显示购物车 if(Request.QueryString["pid"]!=null)![]() ![]() { ls_pid=Request.QueryString["pid"]; additem(ls_pid); }![]() showitem();![]() }![]() ![]() private void additem(string itemid)![]() ![]() {![]() string ls_sql="select ProductId,PName,PPrice from Product where Pstatus='Y' and ProductId= '" + itemid + "'"; string cnn=ConfigurationSettings.AppSettings["oledb"];![]() OleDbConnection myConnection = new OleDbConnection(cnn); OleDbCommand myCommand = new OleDbCommand(ls_sql,myConnection); myConnection.Open(); OleDbDataReader itemdr = myCommand.ExecuteReader();![]() if(itemdr.Read())![]() ![]() { dr = Cart.NewRow(); dr= Cart.NewRow(); dr[0]=itemdr["ProductId"]; dr[1]=itemdr["PName"]; dr[2]="1"; dr[3]=itemdr["PPrice"]; Cart.Rows.Add(dr); }![]() ![]() }![]() private void showitem()![]() ![]() { DataList1.RepeatDirection = RepeatDirection.Horizontal; DataList1.RepeatLayout = RepeatLayout.Table; DataList1.RepeatColumns= 1 ;![]() ![]() DataList1.DataSource=Cart; DataList1.DataBind(); }![]() </script> <html> <head> </head> <body> <form runat="server"> <asp:DataList id="DataList1" runat="server" BorderStyle="None" GridLines="Both" BorderWidth="1px" BorderColor="#CC9966" BackColor="White" CellPadding="4"> <ItemStyle forecolor="#330099" backcolor="White"></ItemStyle> <FooterStyle forecolor="#330099" backcolor="#FFFFCC"></FooterStyle> <HeaderStyle font-bold="True" forecolor="#FFFFCC" backcolor="#990000"></HeaderStyle> <SelectedItemStyle font-bold="True" forecolor="#663399" backcolor="#FFCC66"></SelectedItemStyle> <ItemTemplate> <table width="500"> <tbody> <tr> <td>![]() <% # DataBinder.Eval(Container.DataItem,"pid")%></td> <td>![]() <% # DataBinder.Eval(Container.DataItem,"pname")%></td> <td>![]() <% # DataBinder.Eval(Container.DataItem,"qty")%></td> <td>![]() <% # DataBinder.Eval(Container.DataItem,"pprice")%></td> </tr> </tbody> </table> </ItemTemplate> </asp:DataList> </form> </body> </html> | |
在asp.net中利用session做购物车-DataTable篇
最新推荐文章于 2019-12-08 13:48:09 发布
博客涉及ASP.NET相关内容,包含session、string、server、table等信息技术元素,这些元素在ASP开发中具有重要作用。






}

834





