日期:2014-05-18  浏览次数:20500 次

asp.net2.0购物车问题
以前在1.1做过许多版的购物车,如数据库的、XML的、SESSION的。
现在有新的需求,就是不登录并能保存购物记录,那就要用COOKIES了。
我用了     "i商品编号,数量| "(其中i为另外的分割符,以便能找到商品编号位置)
现在我写了能找到strId,并构造select   *   from   products   where   ProductId   in(strId),但是数量如何绑定回去。用ItemBound绑定,需要一个循环过程。

请教各位大峡,有没有更好的办法。

------解决方案--------------------

DataColumn dtCol = new DataColumn( "数量 ",typeof(int));
dt.Columns.Add(dtCol);

for(int i=0;i <dt.Rows.Count;i++)
{
//把值填进去,再绑定
}
------解决方案--------------------
cookies应该可以用数组形式来写的吧,第一维是产品编号,第二维是产品数量
------解决方案--------------------
什么加判断啊,如果你的Cookies 里的数量变化了,你填进去的值当然也有变化了
------解决方案--------------------
不知道你怎么想的,因为你取的始终是Cookies 的值 跟服务端有什么关系??
------解决方案--------------------
参考petshop 4 的购物车设计
------解决方案--------------------
登不登录跟你购物车有什么关系
没登录就没有会话了?
------解决方案--------------------
历史购物信息 还是 本次购物信息

历史购物信息没登录你还要保存着?

本次购物信息没登录就没有session了吗 做个datatable 或者如你所说拼个字符串放进去不就 OK了
------解决方案--------------------
cookies 做购物车?
我的浏览器禁用cookies,你的购物车我该怎莫使用阿??
------解决方案--------------------
楼上的貌似很牛
------解决方案--------------------
用2。0的个性化用房配置比较好
------解决方案--------------------
我也在做个电子商务,有购物车感念,也在想着怎么个做法,用cookies我本人觉的不够好,太原始了
------解决方案--------------------
每个匿名用户分配一个guid,将这个guid存入cookie作为标示
其他操作和注册用户相同,只不过在登录后要将匿名用户的数据转移到注册用户

在petshop中用的是membership自带的方案,自己写也可以
------解决方案--------------------
問題是想在未登錄的情況下,本機有效還是本詞有效?
------解决方案--------------------
对于资源浪费的问题,可以做一个调度,定时清理

存储在数据库只是持久化的更彻底,不需要再重新设计cookie存储的方案
而且cookie本身也有数量和大小的限制



------解决方案--------------------
我想如果要绑定的话一定要在绑定事件里处理,如果楼主不想循环的话,

可以改变cookie的存储方式 :
产品ID 可以用 cookie.value.add( "productList ", "1,2,3 ")
数量保存为 cookie.value.add( "prod1 ", "4 ") 表示ID 为1 的数量为 4
cookie.value.add( "prod2 ", "5 ")
cookie.value.add( "prod2 ", "6 ")
读取数量应该就简单了

当然楼主也可以不要productList这个项, 直接遍历cookies来找到所有的产品ID和数量


------解决方案--------------------
lz,这个方案很多程序在用了,如petshop和commerce starter kit

第一,我所说的调度是数据库中的调度,当然也可以在b/s程序中实现(具体可参考communityserver)
第二,,清除的只是匿名用户没有checkout的数据,如果匿名用户登录,数据会转移到登录的用户名下.当然如果确实想保存那些数据,可以延长清除时间,或者就用你说的cookie的方法...
第三,谁一次购物还在百条记录以上的啊?我写第二条的时候也在想,谁还能记住几个月前匿名的没结账的记录啊
第四,这种实现同你所说的没有冲突
------解决方案--------------------
cookie中存储的只是标识匿名用户的guid,,,

两种方案都能实现效果
实际使用要自己权衡了:)