ASP.NET+SQL2005实现购物车相同商品的数据叠加
- C# code
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class gwc : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (Session["temp"] == null) { Random rnd = new Random(); int n = rnd.Next(1000, 9999); string newname = DateTime.Now.Year.ToString().Trim() + DateTime.Now.Month.ToString().Trim() + DateTime.Now.Day.ToString().Trim() + DateTime.Now.Hour.ToString().Trim() + DateTime.Now.Minute.ToString().Trim() + DateTime.Now.Second.ToString().Trim() + n.ToString().Trim(); Session["temp"] = newname; } if (!IsPostBack) { string sql; sql = "select * from goumaijilu where goumairen ='" + Session["temp"].ToString().Trim() + "' order by id desc"; getdata(sql); } } private void getdata(string sql) { DataSet result = new DataSet(); result = new Class1().hsggetdata(sql); if (result != null) { if (result.Tables[0].Rows.Count > 0) { DataGrid1.DataSource = result.Tables[0]; DataGrid1.DataBind(); Label1.Text = "以上数据中共" + result.Tables[0].Rows.Count + "条"; } else { DataGrid1.DataSource = null; DataGrid1.DataBind(); Label1.Text = "暂无任何数据"; } } } protected void Button1_Click(object sender, EventArgs e) { string sql; sql = "select * from goumaijilu where goumairen ='" + Session["temp"].ToString().Trim() + "'"; if (bianhao.Text.ToString().Trim() != "") { sql = sql + " and bianhao like '%" + bianhao.Text.ToString().Trim() + "%'"; } if (mingcheng.Text.ToString().Trim() != "") { sql = sql + " and mingcheng like '%" + mingcheng.Text.ToString().Trim() + "%'"; } sql = sql + " order by id desc"; getdata(sql); } protected void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e) { string sql; sql = "select * from goumaijilu where goumairen ='" + Session["temp"].ToString().Trim() + "' order by id desc"; getdata(sql); DataGrid1.CurrentPageIndex = e.NewPageIndex; DataGrid1.DataBind(); } public string riqigeshi(object str) { string strTmp = str.ToString(); DateTime dt = Convert.ToDateTime(strTmp); string ss = dt.ToShortDateString(); return ss; }}上面是我找到的一个购物车(代码学习用,不是很懂,是不是根据mingcheng这个相同字段做个判断,然后购买数量+1,库存数量-1),但是在运行时候,发现相同商品添加到购物车后单独生成一个ID,而我希望相同商品添加进去后,直接数量+1,小弟不才,求指导,希望能在源代码的基础上帮我添加进去新代码。
数据表
序号字段名称字段类型大小允许为空最大长度
1ID Int 4自增编号10
2bianhao VarChar 50是255
3mingchengVarChar 50是255
4jiage VarChar 50是255
5goumaishuliangVarChar 50是255
6beizhu VarChar 50是255
7goumairenVarChar 50是255
8addtime DateTime 8是23
数量添加后,价格相应改变。 这是前台 购物车,用户登录后,有一个用户后台,对购物车进行结算,生成订单。
上面代码修改后,别的地方是否需要修改。。。
http://www.cnblogs.com/Ferry/archive/2010/08/02/1790214.html 实例基于ASP.NET3.5使用Session实现购物车功能,数据库使用SqlServer2005。
[解决办法]
购物车应该是根据登陆的用户名来保存,或未登录时应该根据ip地址啥的生成一个名。按你那字段应该是购买人。。不过一般是存用户id,设外键和用户表联系。
[解决办法]
问题出在,你购物车,里面,没有匹配,是那个用户购买的字段,添加这个一个字段,匹配会员表用户名,添加的时候,查询购物车表,匹配对于的购物信息。
[解决办法]
数量添加价格跟着变?
[解决办法]
那显示的时候就按照一些信心去找啊,找到的数据,如果相同就group by 字段,显示一个总的数量,或者就同种商品有几条记录就显示几条,这样呢也行的。
[解决办法]
往购物车添加商品时,根据购买人和商品的编号或名称查找该用户购物车是否已存在该商品,存在则数量累计,不存在则添加新数据。页面显示局部刷新下就可以了。
[解决办法]
问题出在,你购物车,里面,没有匹配,是那个用户购买的字段,添加这个一个字段,匹配会员表用户名,添加的时候,查询购物车表,匹配对于的购物信息。