简单 ASP.NET 购物车
一个易于实现的购物车,适用于任何数据库。
引言
如果你查看我的代码,你会发现它文档不完善,但我会尝试通过这篇文章来改进它。我在这里演示的购物车对象是我为电子商务网页库的一部分而编写的。
购物车
让我们直接进入这个对象。下一节将创建我们的对象。我们从网页传递连接字符串,使其通用。
using System;
using System.Data;
using System.Data.OleDb;
namespace Coder2k
{
public class Cart
{
private string strConnection;
public Cart(string conn)
{
strConnection = conn;
}
以下是我们的网页将获取其购物车的地方。我们稍后会演示这一点。我们使用存储过程,以便可以使用具有 OLE 接口和支持存储过程的任何数据库。
public OleDbDataReader GetCart(string CartID)
{
OleDbConnection conCart = new OleDbConnection(strConnection);
OleDbCommand comCart = new OleDbCommand("qryGetCart", conCart);
comCart.CommandType = CommandType.StoredProcedure;
OleDbParameter parmCartID = new
OleDbParameter("@CartID", OleDbType.VarChar, 50);
parmCartID.Value = CartID;
comCart.Parameters.Add(parmCartID);
conCart.Open();
OleDbDataReader result =
comCart.ExecuteReader(CommandBehavior.CloseConnection);
return result;
}
现在,让我们看看其余部分,它与此非常相似。由于使用了存储过程,我们在这个对象中不需要了解任何关于数据库的信息,这使得编码更容易。
public void AddItem(string CartID, int ProdID, int Quantity)
{
OleDbConnection conItem = new OleDbConnection(strConnection);
OleDbCommand comItem = new OleDbCommand("qryAddItem", conItem);
comItem.CommandType = CommandType.StoredProcedure;
OleDbParameter parmCartID = new
OleDbParameter("@CartID", OleDbType.VarChar, 50);
parmCartID.Value = CartID;
comItem.Parameters.Add(parmCartID);
OleDbParameter parmProdID = new
OleDbParameter("@ProdID", OleDbType.Integer, 4);
parmProdID.Value = ProdID;
comItem.Parameters.Add(parmProdID);
OleDbParameter parmQuant = new
OleDbParameter("@Quant", OleDbType.Integer, 4);
parmQuant.Value = Quantity;
comItem.Parameters.Add(parmQuant);
conItem.Open();
comItem.ExecuteNonQuery();
conItem.Close();
}
public string GetCartID()
{
System.Web.HttpContext context =
System.Web.HttpContext.Current;
if (context.Request.Cookies["West_CartID"] != null)
{
return context.Request.Cookies["West_CartID"].Value;
}
else
{
Guid tempGuid = Guid.NewGuid();
context.Response.Cookies["West_CartID"].Value
= tempGuid.ToString();
return tempGuid.ToString();
}
}
}
}
现在,getCartID
函数有点奇怪。它检查当前用户是否拥有购物车。如果有,它返回该 ID,否则,它创建一个新的购物车。
网页
如果你熟悉 ASP Web 控件,我认为这些网页可以自说自话。在本文的后续版本中,我将更详细地解释这些文件,并可能为整个程序添加更多功能。