0

I have SESSION["Cart"] in session I have multiple data

Data like

  1. ProductCode
  2. ProductName
  3. ProductPrice
  4. ProductImage

Now I want to delete data from session["cart"]

Like I have two items of data in the cart

ProductCode  ProductName
--------------------------
12           Dress
13           baby cloth

Now I want to delete item with ProductCode = 13. How do I do this because my data is stored in session?

Note: I use gridview and in gridview I use rowdeleting event

When I perform row deleting event its work. But when I refresh the page, then all the data is back because of the session.

Please tell me how I can remove data from Session["cart"]

Kindly solve my problem

UPDATE

This is my code where I add data to the Session["Cart"]:

foreach (DataRow dr in dt.Rows)
{
    ProductCode = Convert.ToInt32(dr["ProductsCode"]);
    ProductName = dr["ProductsName"].ToString();
    ProductPrice = dr["ProductPrice"].ToString();
    ProductImage = dr["ProductImage"].ToString();
    CompanyName = dr["CompanyName"].ToString();
    Quantity = Convert.ToInt32(Session["quantity"]);
}
int result = cmd.ExecuteNonQuery();
con.Close();

if (Session["Cart"] == null)
{
    Session["Cart"] = ProductName.ToString() + "," + ProductPrice.ToString()
                      + "," + ProductImage.ToString() + "," + CompanyName.ToString()
                      + "," + Quantity.ToString() + "," + ProductCode.ToString();

}
else
{
    Session["Cart"]= Request.Cookies["Cart"].Value + "|" + ProductName.ToString()
                     + "," + ProductPrice.ToString() + "," + ProductImage.ToString()
                     + "," + CompanyName.ToString() + "," + Quantity.ToString() + ","
                     + ProductCode.ToString();
}

Update

public void GridView() 
{
    DataTable dt = new DataTable("tbl_Products");

    dt.Columns.AddRange(new DataColumn[6] { new 
       DataColumn("ProductsName"), new DataColumn("ProductPrice"), new 
       DataColumn("ProductImage"), new DataColumn("CompanyName"), new 
       DataColumn("Quantity"), new DataColumn("ProductsCode") });

    if (Session["Cart"] != null)
    {
        s = Convert.ToString(Session["Cart"]);

        string[] strArr = s.Split('|');

        for (int i = 0; i < strArr.Length; i++)
        {
                t = Convert.ToString(strArr[i].ToString());
                string[] strArr1 = t.Split(',');

                for (int x = 0; x < strArr1.Length; x++)
                {
                    array[x] = strArr1[x].ToString();
                }

                dt.Rows.Add(array[0].ToString(), array[1].ToString(), array[2].ToString(), array[3].ToString(), array[4].ToString(), array[5].ToString());

                tot = tot + (Convert.ToInt32(array[1].ToString()));

                TotalAmountlbl.Text = tot.ToString();
                int TotalAmount = Convert.ToInt32(TotalAmountlbl.Text);
                int Charges = Convert.ToInt32(ChargesLabel.Text);
                Result = Convert.ToInt32(TotalLabel.Text);

                Result = TotalAmount + Charges;
                TotalLabel.Text = Result.ToString();

            }
        }

        GridView1.Columns[0].HeaderText = "Product Code";
        GridView1.Columns[1].HeaderText = "Product";
        GridView1.Columns[2].HeaderText = "Quantity";
        GridView1.Columns[3].HeaderText = "Product Name";
        GridView1.Columns[4].HeaderText = "Server Charges";
        GridView1.Columns[5].HeaderText = "Price";
        GridView1.Columns[6].HeaderText = "Company Name";

        ViewState["dt"] = dt;
        BindGrid();
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459

0 Answers0