登陆注册
8724600000033

第33章 软件构造(12)

Handles btnReturn.Click

Me.ShowQuery()

End Sub

6.6.4如何实现购物车功能

购物车是商务网站常见的一种功能。它把用户在该网站浏览时所感兴趣的、有购买意向的商品或相关服务短暂记录在客户端。只要用户还处于登录状态就可以随时查看、修改、编辑他所选择的商品。如果用户觉得他所选择的商品非常满意,就可以提交,把商品的相关信息提交到服务器端处理。此时用户所选的商品已经成为历史,不能再进行修改。用户把喜欢的商品都放到购物车里,最后到出口处进行结账,这个过程非常像在超市里买东西。结账就意味着交易完成,这就相当于用户把商品信息提交到服务器端。

在实现购物车功能时,要用到cookie技术。cookie用来保存用户在登录期间,在该网站所有放入购物车中的商品信息。因为cookie中存放的信息字节有限(不能超过4096 字节),所以一般在cookie里只保存该用户放入购物车中的商品id号(数据库设计时专门有一张商品表,每一种商品有唯一的标识id,作为主键),以及用户需要修改的信息,比如所购商品的数量。而商品的其他信息,可以根据商品id从数据库中读出来,再显示到前台页面,用DataGrid显示购物车中的商品信息。顾客对购物车中的商品信息进行编辑。用户也可以清空购物车,购物车的清空状态。编辑结果可存入商品数据库表中,商品数据库表。

下面是实现购物车功能的代码:

Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load

’在此处放置初始化页的用户代码

ErrMsg.Text=””

’声明cookie

Dim cookie As HttpCookie

’商品的id

Dim Productid As Integer

’商品是否添加的标志

Dim isexist As Boolean=False

If Not IsPostBack Then

’判断前一个页面是否把批Productid通过查询字符串传递过来

If Not Request.QueryString(”ProductId”)Is Nothing Then

Productid=CInt(Request.QueryString(”productId”).ToString())

’获取Cookie(ProductCart)

If Request.Cookies(”ProductCart”)Is Nothing Then

cookie=New HttpCookie(”ProductCart”)

Else

cookie=Request.Cookies(”ProductCart”)

End If

Dim i As Integer

’循环读出Cookie(ProductCart)中所保存用户添加到购物车中的商品的信息

For i=0 To cookie.Values.Count—1

If Not cookie.Values.AllKeys(i)Is Nothing Then

Dim tempstr As String=cookie.Values.AllKeys(i).ToString

If tempstr.Trim()<>””Then

’判断当前添加的商品购物车是否已经存在

If Productid=CInt(cookie.Values.AllKeys(i))Then

isexist=True

Exit For

End If

End If

End If

Next

’购物车里没有改商品,把它添加到购物车了,默认数量为1

If Not isexist Then

cookie.Values.Add(Productid.ToString(),”1”)

Else

ShowErrMsg(”此产品已经添加过了”)

End If

’设置cookie生存时间

Dim ts As TimeSpan=New TimeSpan(0,0,10,0)

cookie.Expires=DateTime.Now.Add(ts)

Response.AppendCookie(cookie)

End If

’把购物车里的商品信息通过DataGrid显示出来

BindGrid()

End If

End Sub

Private Sub ShowErrMsg(ByVal er As String)

ErrMsg.Visible=True

ErrMsg.Text=”<script language="javascript"> alert("”&er&”")</script>”

End Sub

Private Sub BindGrid()

’声明一个datatable表数据结构

Dim mydt As New DataTable

Dim mydr As DataRow

’初始化表的结构

mydt.Columns.Add(New DataColumn(”id”,Type.GetType(”System.String”)))

mydt.Columns.Add(New DataColumn(”Name”,Type.GetType(”System.String”)))

mydt.Columns.Add(New DataColumn(”Price”,Type.GetType(”System.String”)))

mydt.Columns.Add(New DataColumn(”Number”,Type.GetType(”System.String”)))

mydt.Columns.Add(New DataColumn(”Unit”,Type.GetType(”System.String”)))

mydt.Columns.Add(New DataColumn(”Totle”,Type.GetType(”System.String”)))

If Not Request.Cookies(”ProductCart”)Is Nothing Then

Dim cookie As HttpCookie=Request.Cookies(”ProductCart”)

Dim i As Integer

For i=0 To cookie.Values.Count—1

Dim id As Integer

’新行实例化

mydr=mydt.NewRow

’声明数据库表中的一行

Dim row As T_ProductRow

Dim mynearfar As New Nearfar

’把cookie中保存的信息写到定义的表里

If cookie.Values.AllKeys(i)<>””And cookie.Values(i)<>””Then

id=CInt(cookie.Values.AllKeys(i))

’根据cookie中保存的productid查询数据库中商品的其他信息

row=mynearfar.T_ProductCollection.GetByPrimaryKey(id)

mydr(0)=id

同类推荐
  • 天下一家:网络联通世界(科学新导向丛书)

    天下一家:网络联通世界(科学新导向丛书)

    《天下一家:网络联通世界》一书从网络的基本知识出发,详细地介绍了网络科技的发展与用途,还包括校园网络对普及教育的重大作用。本书内容翔实、结构清晰、图文并茂,是一本实用性极强的网上冲浪参考书。
  • 都是网络惹的祸

    都是网络惹的祸

    本书分网络游戏、网络聊天、网络隐私、网络网吧安全、网络文化、网络语言、网络犯罪、网络陷阱等栏目,从不同的视角探讨了在当今社会的网络现象。
  • 微软360度

    微软360度

    本书是由微软总部华人协会组织编写的第二本书,是《微软360度——企业和文件》一书的姐妹篇,本书将着重向你呈现微软总部的华人专家是如何一步一步地走向成功的及在微软总部成功的心路历程,以及如何应对挑战,揭示了微软成功的最重要秘密之一——人才至上,读者读后收获更多的是这些成功人士的成功经验,从而为自己的成功做出更好的规划。就让我们一起通过此书来看看微软公司人才至上管理的方方面面,聆听微软的心声,感觉微软的脉动吧。
  • 如何选购电脑

    如何选购电脑

    本书以问答的形式介绍了选购电脑的基本知识。内容包括:电脑的组成、选购电脑的技巧、主机的部件构成、主板的主要类型、CPU的性能指标等。
  • 三维动画审美谈

    三维动画审美谈

    数字时代,美的标准充满更多的不确定性。而三维动画以数字图像形式成为这个图时代的代表。三维动画及三维图像不仅仅是由于应用了仿真数字图像技术而带来的虚拟空间,还有更多的是由三维图像技术所引发或引导的被扩展的图像技术,这些技术无不应用在现代视觉设计领域的各个方面,并且,由此引起社会的追热,引起审美观念的改变。这些改变是在进行中的,变化中的,也是在发展中的。对于未知的美,我们做的只是追寻和记录,我们不知道以后的美将会是什么样,尽管我们苦苦追寻,孜孜探讨,同时也在默默审视。我们在追寻中享受美,在探讨中认知美,在审视中体验美……
热门推荐
  • 盛夏转角刚刚好的温柔

    盛夏转角刚刚好的温柔

    爱,是一种难以言喻的情绪,却在人类生活中存在了数千年。
  • 哲之寓言

    哲之寓言

    本人善于写寓言故事,阐述人生哲理。一个个小故事经典且有趣,很有回味。值得一品。
  • 表字小邪

    表字小邪

    长在地球的方沐忽然穿越道一个以武为尊的世界成了一个武者。却是成了一个异类。“练武也不是意味着一定要去争天下第一。”“不管能走到哪里,刚好就好。”在下姓方名沐。表字小邪。
  • 愿语四季笙歌

    愿语四季笙歌

    如果不是你,又怎会有现在的我,感谢有你,感谢无论风雨,你都在我的身边……敬请期待我的第一部小说《愿语四季笙歌》
  • 心底深处的梦

    心底深处的梦

    多年前,她许下了一个愿望,更是她的梦想。她开始在圆梦道路上奔跑。用整个青春换来梦想的实现。而她做的这一切,却只为了多年前在黄昏时遇见的阳光少年。。。
  • 菜鸟漂浮记

    菜鸟漂浮记

    我梦想着一夜暴富,社会恶狠狠的告诉我“暴富”是谁
  • 最后的二零一九

    最后的二零一九

    一个源自真实故事的人物传记类小说。林诺?从失去十年创业的一切和众叛亲离中倔强的站起身,却在改变的生活里,遇到了一种最珍贵的平凡。
  • 道参记

    道参记

    鸿蒙混元,正觉正悟,谓之圣者。如今业力演变,圣劫来临,鸿蒙之气从三十六天大罗之天泄入三界。顽固刚直的秀才,悲悯众苦的和尚,练剑成痴的剑客,化血成灵的赤龙,断灭三魂的死士。每一位英雄豪侠,都将在三界大乱之时找寻自己的道。中庸,救苦,志世,叛命,斩魂。儒释道妖魔。欲成圣,先证道。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 总裁宠妻100度C

    总裁宠妻100度C

    陆槿只是十八线外的小明星,无辜被卷入了艳照门当中。齐默:“陆槿,你连自爱都不懂了吗?”绯闻漫天的前男友问她何为自爱?呵呵…就在周遭人人对她冷眼以对,等着看她笑话的时候,她却被曼城最冷艳清贵的人带走了。在男人的一句话下,各大娱乐版面对她无一不是赞美之声。接近了才知道,黎复——这是个一丝一毫都讲究到极致,闷骚到极致的男人。黎复:“坐过来一点。”陆槿:“你有洁癖…我…”黎复:“坐到腿上来。”陆槿:“不太好吧…”男人放下杯盏,伸手将她拉至腿上,脸上神情依旧清傲。黎复:“洁癖是指在穿着衣服的时候。”陆槿:“……”不闷骚会怎样?