后台:using System;
public partial class Default21 : System.Web.UI.Page
{
    public DB db = new DB();    string selSql = "select count(username) from user where name=@username and pwd=@userpwd";
    string updateSql = "update product set [count]=[count]+1 where id=@id";
    string pram_id = "@id";
    string parm_name = "@username";
    string parm_pwd = "@userpwd";
    string dmsg;
    int did, dcount;
    string dname, dimage;
    string dprice;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CartData();
            if (Session["Cart"] == null)
            {                CreateCart();
            }
            if (Session["Cart"] != null)
            {                HaveCart();
            }
        }
        Total();
    }
    protected void CreateCart()
    {
        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new DataColumn("id", typeof(int)));
        dt.Columns.Add(new DataColumn("name", typeof(string)));
        dt.Columns.Add(new DataColumn("price", typeof(string)));
        dt.Columns.Add(new DataColumn("count", typeof(float)));
        dt.Columns.Add(new DataColumn("image", typeof(string)));
        dt.Columns.Add(new DataColumn("msg", typeof(string)));
        dr = dt.NewRow();
        dr["id"] = did;
        dr["name"] = dname;
        dr["price"] = dprice;
        dr["count"] = dcount;
        dr["image"] = dimage;
        dr["msg"] = dmsg;
        dt.Rows.Add(dr);
        Session["Cart"] = dt;
        gvCart.DataSource = dt;
        gvCart.DataBind();
    }
    protected void CartData()
    {
        string selSql2 = "select * from product where id=@id";        did = int.Parse(Request.QueryString["uid"].ToString());        OleDbParameter parms = new OleDbParameter(pram_id, OleDbType.Integer);
        parms.Value = did;
        OleDbDataReader odr = db.ExecuteReader(db.sqlConn, CommandType.Text, selSql2, parms);
        while (odr.Read())
        {
            dprice = odr["price"].ToString();
            dname = odr["name"].ToString();
            dmsg = odr["msg"].ToString();
            dimage = odr["imageUrl"].ToString();
        }    }
    public void HaveCart()
    {
        DataTable dt = new DataTable();
        dt = (DataTable)Session["Cart"];
        int count = dt.Rows.Count;
        int i = 0;
        bool isHave = false;
        while (i < count && !isHave)
        {
            if (did == int.Parse(dt.Rows[i][0].ToString()))
            {
                isHave = true;
            }
            else
            {
                i++;
            }        }
        if (isHave)
        {
            DataRow oldDr;
            oldDr = dt.Rows[i];
            oldDr["count"] = float.Parse(oldDr["count"].ToString()) + 1;
            oldDr["price"] = float.Parse(oldDr["count"].ToString()) * float.Parse(oldDr["price"].ToString());
        }
        else
        {
            DataRow newDr;
            newDr = dt.NewRow();
            newDr["id"] = did;
            newDr["name"] = dname;
            newDr["price"] = dprice;
            newDr["count"] = 1;
            newDr["image"] = dimage;
            newDr["msg"] = dmsg;
            dt.Rows.Add(newDr);
        }
        gvCart.DataSource = dt;
        gvCart.DataBind();
    }
    protected void gvCart_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvCart.PageIndex = e.NewPageIndex;
        HaveCart();    }
    

解决方案 »

  1.   

    protected void clear_Click(object sender, ImageClickEventArgs e)
        {
            Session["Cart"] = null;
            Session.Remove("Cart");
            Response.Redirect("Default.aspx");
        }
        protected void gvCart_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {        DataTable dt = new DataTable();
            dt = (DataTable)Session["Cart"];
            dt.Rows[e.RowIndex].Delete();
            Session["Cart"] = dt;
            gvCart.DataSource = dt;
            gvCart.DataBind();
            Total();    }    protected void gvCart_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string selSql2 = "select * from product where id=@id";
            string pprice = "";
         //   did = int.Parse(Request.QueryString["uid"].ToString());
            string idvalue = ((HtmlInputHidden)gvCart.Rows[e.RowIndex].FindControl("id_1")).Value;
            did = int.Parse(idvalue);
            OleDbParameter parms = new OleDbParameter(pram_id, OleDbType.Integer);
            parms.Value = did;
            OleDbDataReader odr = db.ExecuteReader(db.sqlConn, CommandType.Text, selSql2, parms);
            while (odr.Read())
            {
                pprice = odr["price"].ToString();        }
            DataTable dt = new DataTable();
            float sum = 0;
            dt = (DataTable)Session["Cart"];
          //  int idT = int.Parse(Request.QueryString["uid"].ToString());
           int idT = int.Parse(idvalue);
            DataSet ds = db.dbo("select * from product where id=" + idT, "pm");
            string countvalue = ((HtmlInputText)gvCart.Rows[e.RowIndex].FindControl("textfield2")).Value;
           
            dt.Rows[e.RowIndex]["count"] = float.Parse(countvalue);      //  Response.Write("<script>alert('" + dt.Rows[e.RowIndex]["count"] + "')</script>");
            dt.Rows[e.RowIndex]["price"] = float.Parse(pprice) * float.Parse(dt.Rows[e.RowIndex]["count"].ToString());
            GridViewRow gvr;
            for (int i = 0; i < gvCart.Rows.Count; i++)
            {
                gvr = gvCart.Rows[i];
                string price3 = ((Label)gvr.FindControl("price2")).Text;            sum += float.Parse(price3);        }
            zongjia.Text = sum.ToString();
            Session["Cart"] = dt;
            gvCart.DataSource = dt;
            gvCart.DataBind();
            Total();
        }    protected void qu_Click(object sender, ImageClickEventArgs e)
        {
            GridViewRow gvr;
            string cus;
            Random rd = new Random();
            int rdid = rd.Next(1, 1000);
            string orderid = DateTime.Now.ToString("yyyymmddhhmmss") + rdid;
            Session["orderid"] = orderid;
            string insSql = "insert into [orders]([name], [price], [count], proid, orderid, buyname,beizhu) values (@name, @price, @count, @proid, @orderid, @buyname,@beizhu)";        string p_name = "@name", p_price = "@price", p_count = "@count", p_pid = "@proid", p_oid = "@orderid", p_buy = "@buyname",p_beizhu="@beizhu";
            if (Session["user"] != null)
            {
                for (int i = 0; i < gvCart.Rows.Count; i++)
                {
                    gvr = gvCart.Rows[i];
                    string name3 = ((Label)gvr.FindControl("name2")).Text;
                    string id3 = ((Label)gvr.FindControl("id2")).Text;
                    string price3 = ((Label)gvr.FindControl("price2")).Text;
                    string count3 = ((HtmlInputText)gvr.FindControl("textfield2")).Value;
                    OleDbParameter[] prams = new OleDbParameter[7];
                    prams[0] = new OleDbParameter(p_name, OleDbType.VarChar);
                    prams[0].Value = name3;
                    prams[1] = new OleDbParameter(p_price, OleDbType.VarChar);
                    prams[1].Value = price3;
                    prams[2] = new OleDbParameter(p_count, OleDbType.VarChar);
                    prams[2].Value = count3;
                    prams[3] = new OleDbParameter(p_pid, OleDbType.Integer);
                    prams[3].Value = id3;
                    prams[4] = new OleDbParameter(p_oid, OleDbType.VarChar);
                    prams[4].Value = orderid;
                    prams[5] = new OleDbParameter(p_buy, OleDbType.VarChar);
                    prams[5].Value = Session["user"].ToString();
                    prams[6] = new OleDbParameter(p_beizhu,OleDbType.VarChar);
                    prams[6].Value = beizhu.Value;
                    db.ExecuteNonQuery(db.sqlConn, CommandType.Text, insSql, prams);
                }
                Session["Cart"] = null;
                Session.Remove("Cart");
                Response.Redirect("Choose.aspx?orderid=" + orderid.ToString());
            }
            else
            {
                Response.Redirect("User.aspx");
            }    }
        protected void Total()
        {
            float sum = 0;
            GridViewRow gvr;
            for (int i = 0; i < gvCart.Rows.Count; i++)
            {
                gvr = gvCart.Rows[i];
                string price3 = ((Label)gvr.FindControl("price2")).Text;
                sum += float.Parse(price3);
            }
            zongjia.Text = sum.ToString();
        }
    }
    真的很急,希望大家帮下我...
      

  2.   

    Line 45:         if (Request.QueryString["id1"] != null)
    Line 46:         {
    Line 47:             int id = int.Parse(Request.QueryString["id1"].ToString());
    Line 48:             ds = db.dbo("select * from product where type2="+id,"product");
    Line 49:           //  DataList1.DataSource = ds;
      

  3.   

    使用AspNetPager.dll控件,很好,不用自己写代码,