大家一起来探讨在在Asp.net中购物车的各种实现方法!
我的购物车是通过session+vb.net的对象collection来实现的!
但在实现的过程中还存在一些问题,就是通过collection 来放置数据后。要想取出来进行相关的处理有些麻烦。
<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.sqlclient" %>
<script runat="server">
文件1: ct1.aspx
sub page_load()
dim conn as sqlconnection
dim comm as sqlcommand
dim datas as sqldatareader
dim coll as new collection
dim strconn as string
dim strcomm as string
strconn="server=;database=;uid=;pwd="
conn=new sqlconnection(strconn)
conn.open
strcomm="select *from tables where cls_flag=1 and cls_dadid=0 "
comm=new sqlcommand(strcomm,conn)
datas=comm.executereader()
do while datas.read
coll.add(datas.item("cls_name"))
loop
session("shoppingcart")=coll 'collection 对象放入session
conn.close
conn=nothing
comm=nothing
datas=nothing
coll=nothing
end sub
Sub Button1_Click(sender As Object, e As EventArgs)
response.redirect("ct2.aspx")
End Sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:Button id="Button1" onclick="Button1_Click"runat="server" Text="Button"></asp:Button>
</form>
</body>
</html>
文件2: ct2.aspx
<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.sqlclient" %>
<script runat="server">
sub page_load()
dim coll as new collection
dim dr as datarow
coll=session("shoppingcart")
dg.datasource=coll '设置datagrid控件数据源
dg.databind
end sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:DataGrid id="dg" runat="server">
</asp:DataGrid>
<!-- Insert content here -->
</form>
</body>
</html>
在文件ct2.aspx运行可以显示在ct1.aspx提取的数据,这说明数据已经通过collection对象传递到页面ct2.aspx
但是我用另一种方法:dataset提取数据后,用下面的循环
dim drow as datarow
dim collects as datarowcollection
for i =0 to collects.count-1
drow=collects.item(i)
coll.add(drow)
next
提取数据后在另一个页面放入datagrid控件却无法显示!