ASP.NET+SQL2005实现购物车相同商品的数据叠加解决方案
ASP.NET+SQL2005实现购物车相同商品的数据叠加
上面是我找到的一个购物车(代码学习用,不是很懂,是不是根据mingcheng这个相同字段做个判断,然后购买数量+1,库存数量-1),但是在运行时候,发现相同商品添加到购物车后单独生成一个ID,而我希望相同商品添加进去后,直接数量+1,小弟不才,求指导,希望能在源代码的基础上帮我添加进去新代码。
数据表
序号 字段名称 字段类型 大小 允许为空 最大长度
1 ID Int 4 自增编号 10
2 bianhao VarChar 50 是 255
3 mingcheng VarChar 50 是 255
4 jiage VarChar 50 是 255
5 goumaishuliang VarChar 50 是 255
6 beizhu VarChar 50 是 255
7 goumairen VarChar 50 是 255
8 addtime DateTime 8 是 23
数量添加后,价格相应改变。 这是前台 购物车,用户登录后,有一个用户后台,对购物车进行结算,生成订单。
上面代码修改后,别的地方是否需要修改。。。
http://www.cnblogs.com/Ferry/archive/2010/08/02/1790214.html 实例基于ASP.NET3.5使用Session实现购物车功能,数据库使用SqlServer2005。
------解决方案--------------------
购物车应该是根据登陆的用户名来保存,或未登录时应该根据ip地址啥的生成一个名。按你那字段应该是购买人。。不过一般是存用户id,设外键和用户表联系。
- 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,小弟不才,求指导,希望能在源代码的基础上帮我添加进去新代码。
数据表
序号 字段名称 字段类型 大小 允许为空 最大长度
1 ID Int 4 自增编号 10
2 bianhao VarChar 50 是 255
3 mingcheng VarChar 50 是 255
4 jiage VarChar 50 是 255
5 goumaishuliang VarChar 50 是 255
6 beizhu VarChar 50 是 255
7 goumairen VarChar 50 是 255
8 addtime DateTime 8 是 23
数量添加后,价格相应改变。 这是前台 购物车,用户登录后,有一个用户后台,对购物车进行结算,生成订单。
上面代码修改后,别的地方是否需要修改。。。
http://www.cnblogs.com/Ferry/archive/2010/08/02/1790214.html 实例基于ASP.NET3.5使用Session实现购物车功能,数据库使用SqlServer2005。
------解决方案--------------------
购物车应该是根据登陆的用户名来保存,或未登录时应该根据ip地址啥的生成一个名。按你那字段应该是购买人。。不过一般是存用户id,设外键和用户表联系。