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

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.html 实例基于ASP.NET3.5使用Session实现购物车功能,数据库使用SqlServer2005。



------解决方案--------------------
购物