zoukankan      html  css  js  c++  java
  • 自己写的一个asp.netcookies购物车类

      自己写的一个asp.net cookies 购物车类,实现购物车功能,实现无需注册就可购物

      using System;

      using System.Data;

      using System.Configuration;

      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;

      //文章来源:http://study.pctoday.net.cn/2_ASP.net.aspx

      public class CookieShoppingCart

      {

      /// <summary>

      /// 加入购物车

      /// </summary>

      /// <param name="ProductID"></param>

      /// <param name="Quantity"></param>

      public static void AddToShoppingCart(int ProductID, int Quantity, int Box)

      {

      if (HttpContext.Current.Request.Cookies["ShoppingCart"] == null)

      {

      HttpCookie oCookie = new HttpCookie("ShoppingCart");

      //Set Cookie to expire in 3 hours

      oCookie.Expires = DateTime.Now.AddYears(3);

      oCookie.Value = ProductID.ToString() + ":" + Quantity.ToString() + ":" + Box.ToString();

      HttpContext.Current.Response.Cookies.Add(oCookie);

      }

      //如果cookie已经存在

      else

      {

      bool bExists = false;

      HttpCookie oCookie = (HttpCookie)HttpContext.Current.Request.Cookies["ShoppingCart"];

      oCookie.Expires = DateTime.Now.AddYears(3);

      string ShoppingCartStr = oCookie.Value.ToString();

      string[] arrCookie = ShoppingCartStr.Split(new char[] { ',' });

      //查看cookie中是否有该产品

      string newCookie = "";

      for (int i = 0; i < arrCookie.Length; i++)

      {

      if (arrCookie[i].Trim().Remove(arrCookie[i].IndexOf(':')) == ProductID.ToString().Trim())

      {

      bExists = true;

      string OldQuantity = arrCookie[i].Trim().Substring(arrCookie[i].Trim().IndexOf(':') + 1);//得到数量

      OldQuantity = OldQuantity.Remove(OldQuantity.LastIndexOf(":"));

      OldQuantity = (Convert.ToInt32(OldQuantity) + Quantity).ToString();

      arrCookie[i] = arrCookie[i].Trim().Remove(arrCookie[i].IndexOf(':')) + ":" + OldQuantity + ":" + Box.ToString();

        //HttpContext.Current.Response.Write(arrCookie[i].Trim().Remove(arrCookie[i].IndexOf(':')) + "已存在!数量:" + OldQuantity + "<br>");

      //HttpContext.Current.Response.Write(arrCookie[i] + "<br>");

      }

      newCookie = newCookie + "," + arrCookie[i];

      }

      //如果没有该产品

      if (!bExists)

      {

      oCookie.Value = oCookie.Value + "," + ProductID.ToString() + ":" + Quantity.ToString() + ":" + Box.ToString();

      }

      else

      {

      oCookie.Value = newCookie.Substring(1);

      }

      HttpContext.Current.Response.Cookies.Add(oCookie);

      HttpContext.Current.Response.Write("ShoppingCart:" + HttpContext.Current.Request.Cookies["ShoppingCart"].Value);

      }

      }

      /// <summary>

      /// 移除购物车子项

      /// </summary>

      /// <param name="ProductID"></param>

      public static void RemoveShoppingCart(int ProductID)

      {

      if (HttpContext.Current.Request.Cookies["ShoppingCart"] != null)

      {

      HttpCookie oCookie = (HttpCookie)HttpContext.Current.Request.Cookies["ShoppingCart"];

      oCookie.Expires = DateTime.Now.AddYears(3);

      //Check if Cookie already contain same item

      string ShoppingCartStr = oCookie.Value.ToString();

      string[] arrCookie = ShoppingCartStr.Split(new char[] { ',' });

      string[] arrCookie2 = new string[arrCookie.Length - 1];

      int j = 0;

      string NewStr = "";

      for (int i = 0; i < arrCookie.Length; i++)

      {

      if (arrCookie[i].Trim().Remove(arrCookie[i].IndexOf(':')) != ProductID.ToString())

      NewStr = NewStr + "," + arrCookie[i];

      }

      if (NewStr == "")

      HttpContext.Current.Response.Cookies["ShoppingCart"].Value = "";

      else

      HttpContext.Current.Response.Cookies["ShoppingCart"].Value = NewStr.Substring(1);

      }

      }

      public static void UpdateShoppingCart(int ProductID, int Quantity, bool box)

      {

      int Box = 1;

      if (!box)

      Box = 0;

      if (HttpContext.Current.Request.Cookies["ShoppingCart"] != null)

      {

      bool bExists = false;

      HttpCookie oCookie = (HttpCookie)HttpContext.Current.Request.Cookies["ShoppingCart"];

      oCookie.Expires = DateTime.Now.AddYears(3);

      string ShoppingCartStr = oCookie.Value.ToString();

      string[] arrCookie = ShoppingCartStr.Split(new char[] { ',' });

      //查看cookie中是否有该产品

      string newCookie = "";

      for (int i = 0; i < arrCookie.Length; i++)

      {

      if (arrCookie[i].Trim().Remove(arrCookie[i].IndexOf(':')) == ProductID.ToString().Trim())

      arrCookie[i] = arrCookie[i].Trim().Remove(arrCookie[i].IndexOf(':')) + ":" + Quantity.ToString() + ":" + Box.ToString();

      newCookie = newCookie + "," + arrCookie[i];

      }

      HttpContext.Current.Response.Cookies["ShoppingCart"].Value = newCookie.Substring(1);

      }

      }

      public static DataTable GetShoppingCart()

      {

      DataTable dt = new DataTable();

       if (HttpContext.Current.Request.Cookies["ShoppingCart"] != null && HttpContext.Current.Request.Cookies["ShoppingCart"].Value.Trim() != "")

      {

      HttpCookie oCookie = (HttpCookie)HttpContext.Current.Request.Cookies["ShoppingCart"];

      oCookie.Expires = DateTime.Now.AddYears(3);

      string ShoppingCartStr = oCookie.Value.ToString();

      //HttpContext.Current.Response.Write(ShoppingCartStr);

      string[] arrCookie = ShoppingCartStr.Split(new char[] { ',' });

      //查看cookie中是否有该产品

      string newCookie = "";

      for (int i = 0; i < arrCookie.Length; i++)

      {

      newCookie = newCookie + "," + arrCookie[i].Trim().Remove(arrCookie[i].IndexOf(':'));

      }

      newCookie = newCookie.Substring(1);

      dt = Product.GetProductByProductIds(newCookie, -1);

      dt.Columns.Add("Quantity");

      dt.Columns.Add("Box");

      foreach (DataRow row in dt.Rows)

      {

      for (int i = 0; i < arrCookie.Length; i++)

      {

      if (arrCookie[i].Trim().Remove(arrCookie[i].IndexOf(':')) == row["ProductId"].ToString())

      {

      row["Quantity"] = arrCookie[i].Substring(arrCookie[i].IndexOf(":") + 1);

      row["Quantity"] = row["Quantity"].ToString().Remove(row["Quantity"].ToString().IndexOf(":"));

      string Box = arrCookie[i].Substring(arrCookie[i].LastIndexOf(":") + 1);

      if (Box == "1")

      row["Box"] = true;

      else

      row["Box"] = false;

      }

      }

      }

      }

      else

      {

      dt = Database.GetDataTable("select top 0 * from View_ProductList");

      dt.Columns.Add("Quantity");

      }

      return dt;

      }

      }

  • 相关阅读:
    Nullable<T>、Nullable、null、?修饰符的区别
    使用EF CodeFirst连接MySql数据库
    C# 在项目中配置Log4net
    我的Visual Studio必用工具
    面向对象原则之一 接口隔离原则
    面向对象原则之一 依赖倒置原则
    C# ABP
    面向对象原则之一 开放封闭原则(开闭原则)
    面向对象原则之一 单一职责原则
    C# Owin初探 概念理解(一)
  • 原文地址:https://www.cnblogs.com/top5/p/1635396.html
Copyright © 2011-2022 走看看