登陆注册
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

同类推荐
  • 大话设计模式

    大话设计模式

    本书主要采用JAVA语言介绍设计模式中比较常见的23种设计模式,分29章具体介绍,以现实生活中常见的事情为例来具体分析讲解。
  • 天下一家:网络联通世界(科学新导向丛书)

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

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

    纵横于天地之间——互联网络技术

    本书告诉你:不管你是谁,只要生活在当前的时代,你一定知道电话,知道电脑,知道上网……知道许许多多关于电子、关于计算机、关于网络的话题,这就是网络时代。网络的话题可多了:它是怎么来的?什么是“蜘蛛网”?网络的过去和现在,上网的方法,如何使用网络,互联网的安全,网络有“陷阱”吗?网络有“瘾”吗?网络文化和未来又是怎样的?到书中去找答案吧!
  • 综合应用软件设计

    综合应用软件设计

    本书是为计算机、信息管理等相关专业高年级本科生在开设相关课程时所编写的一本教学参考书,它将全面指导学生学习、熟悉和运用当今被广泛采纳的一些主流技术去进行综合应用软件设计的有效实践。
  • 爱上我的“手机女友”

    爱上我的“手机女友”

    本书共有五个部分:第一章:千娇百媚的我—手机门类大搜索第二章:了解我的心—手机“芯”理学第三章:不一样的我不一样的美—手机的万种风情第四章:命中注定我爱你—神秘手机星座解读第五章:有求必应贴心女友—手机的绝世武功通过这本书,想要购入手机的你会知道哪款手机女友更适合你,已有心仪手机的你可以让手机女友懂得更多变得更聪明。希望这本书能够帮助你在手机选购上和手机使用上更舒心、安心、贴心。
热门推荐
  • 本应缘浅,奈何情深

    本应缘浅,奈何情深

    他,是她苦苦追寻了六年的初恋情人,活泼开朗...一次次的伤害让她痛不欲生。他,是她温文尔雅的学长,对她呵护备至。这样的一缕温暖能否融化她心底的寒冷?他,是暗夜帝国的王,任何的女子都不能入他的眼。可是却意外的遇见了...可幸福的时刻总是短暂的,当一切的意外发生,他能否守住这一抹干净与纯真?
  • 他的蜜糖柠檬茶

    他的蜜糖柠檬茶

    经典场景一:初遇某男人看着不远处正在洗手的女孩,微微出神,口中呢喃道:“原来,这就是一见钟情的感觉…”漂亮的桃花眼配上红了的耳尖,真的是第一次见啊旁边的小弟看着像花痴一样的大佬,心中感叹:唉,母胎单身21年的老大终于要嫁出去了。
  • 穿越之女王

    穿越之女王

    创世只为酬三顾,寻得一人方得休。只是,吾以当真,你却无所踪。桃树之下盼君一碗桃羹----
  • 火影之变革者

    火影之变革者

    火影是很多人美好的回忆,但个人想写一部关于宁次的作品,单女主,不随意乱改章节
  • 你的礼仪价值百万

    你的礼仪价值百万

    美国礼仪皇后艾米莉·博斯特写就的鸿篇巨制,一部分门别类、细致入微的全球礼仪手册。书中介绍了包括社交礼仪、商务礼仪、职场礼仪、举止气质、服饰形象仪表、社交礼仪、用餐礼仪、及旅行礼仪等生活中可能接触到的所有礼仪规范。自问世以来,已修订再版18次!为了迎合当前人们快节奏的生活方式,我们力求在尊重于原著的基础上,取其精华,打造一本全新的礼仪书,以实用而规范的解说,向你展示了魅力的秘密。紧贴生活实际,详细而实用。
  • 一任年华

    一任年华

    这个世界就是这么小,该相遇的人总有一天会相遇,不刻意去寻找,就是那样躲也躲不掉。
  • Doll

    Doll

    带来恐怖的人偶Tenshi,百年后的回归。
  • 幕后台前

    幕后台前

    新书,团宠大佬在娱乐圈开道观已上线,欢迎移步关注这是一个热血小编剧逆袭娱乐圈的故事。同时也是一对青梅竹马不停错过又再三相遇的故事。她说:“兵法云:一鼓作气,再而衰,三而竭。我们…算了吧。”他却说:“兵法又云:彼竭我盈,故克之。我们散不掉的。”非典型青梅竹马文。第一次见面的时候,她对小伙伴们炫耀,“我家来客人了,是个好看的小哥哥。”第二次见面的时候,她对身边的同学说:“那个好看的小哥哥,我之前认识的。”第三次见面的时候,她对旁边的同事说:“那个男生和我认识的一个人很像啊。”第四次见面的时候,她对对面的他说:“你好,初次见面,请多指教。”可是,他却对围在周围的下属说:“家属闹脾气呢,别介意。”书友圈169799330
  • 声色现场:和苏七七看电影

    声色现场:和苏七七看电影

    电影是一门关于光的艺术。上帝说:要有光。就有了光。光是先在的,就如同大师们是天才。DV时代据说要取代胶片时代了,但大师们的作品不会消失。它们化蝶――化为影碟,飞到我们普通的人眼前。他们和它们都已成为“传奇”。“流言”,说的大多是在商业院线看不到的中国电影。也就是说,听说的多,看到的少。我常常周六去现象工作室――或在别的时间、别的地点为,看个国内导演拍的片子,每回老老实实为中国当代电影做个速记员,渐渐积了许多笔记,也认识了许多年轻的、做着电影梦的人。我传播流言,是想让大家都知道,有些人在多么热情、勤奋、艰苦地做事情。他们的剧情片和纪录片,已成为影像中国的一角,锐角。
  • 红黄绿蓝

    红黄绿蓝

    第一次写,看看吧,第一次写,看看吧,第一次写,看看吧