当前位置: 代码迷 >> ASP.NET >> ASP.NET+SQL2005实现购物车相同商品的数据叠加解决方案
  详细解决方案

ASP.NET+SQL2005实现购物车相同商品的数据叠加解决方案

热度:9538   发布时间:2013-02-25 00:00:00.0
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,小弟不才,求指导,希望能在源代码的基础上帮我添加进去新代码。

数据表
序号 字段名称 字段类型 大小 允许为空 最大长度
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 实例基于ASP.NET3.5使用Session实现购物车功能,数据库使用SqlServer2005。



------解决方案--------------------------------------------------------
购物车应该是根据登陆的用户名来保存,或未登录时应该根据ip地址啥的生成一个名。按你那字段应该是购买人。。不过一般是存用户id,设外键和用户表联系。
  相关解决方案