在asp.net中利用session做购物车-DataTable篇
来源:互联网 发布:惠普1415网络链接 编辑:程序博客网 时间:2024/06/07 12:57
构想: 在session里定义一个datatable,用作购物车。
A.aspx 传送一个商品ID给 B.aspx , B.aspx 显示购物车的相关资料。
我觉得用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>
<%@ 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篇
- ASP.NET实例:利用对象序列化将购物车保存在Cookie中
- 简单datatable做购物车
- 商城中,购物车的实现(DataTable和Session)
- .net ----DataTable与购物车
- asp.net中购物车的两种存储方式Session和Cookie的应用实例
- asp.net中购物车的两种存储方式Session和Cookie
- asp.net中购物车的两种存储方式Session和Cookie的应用实例
- asp.net购物车实现-------结合session方式
- session + List<T> 实现购物车(asp.net mvc)
- Session做的购物车
- asp.net session 保存在数据库中
- asp.net session 保存在数据库中
- asp.net session 保存在数据库中
- asp.net session 保存在数据库中
- asp.net在ashx中使用session
- 在Asp.net Ajax中使用Session
- 在asp.net handler 中 使用 session
- perl文本处理总结[2]
- Not every function needs to handle every possible error;
- 纪念进入csdn blog的第一天
- ASP.NET动态生成HTML页面
- Abstract Factory
- 在asp.net中利用session做购物车-DataTable篇
- 关于Delphi的FAQ
- 论C++构造函数中的不合理设计
- 在ASP.NET中把图片保存到SQL SERVER数据库
- 将sql server中的数据倒入Excel(c#)
- 在 Java 的泛型类型中使用通配符
- 对自己的话
- C++调用C函数问题
- 电夏end