📄 bookstore.cs
字号:
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;
using System.Data.SqlClient;
/// <summary>
/// BookStore 的摘要说明
/// </summary>
public class BookStore
{
public class OrderDetails
{
public DateTime OrderDate;
public decimal OrderTotalCost;
public DataSet OrderItems;
}
public BookStore()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// TransplantShoppingCart方法用于把一个购物车里面的商品转移到另一个购物车里面去。
/// 当顾客没有注册或者登录时,他在网上商店上购买的商品放在一个临时的购物车里面。
/// 在登录和注册后则需要把用户的临时购物车内的商品转移到该用户对应的永久账号里面去。
/// TransplantShoppingCart方法就在这种情况下被调用。
/// </summary>
public void TransplantShoppingCart(String oldCartId, String newCartId)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("TransplantShoppingCart", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter cart1 = new SqlParameter("@OldCartIDString", SqlDbType.NVarChar, 50);
cart1.Value = oldCartId;
myCommand.Parameters.Add(cart1);
SqlParameter cart2 = new SqlParameter("@NewCartIDString", SqlDbType.NVarChar, 50);
cart2.Value = newCartId;
myCommand.Parameters.Add(cart2);
myCommand.ExecuteNonQuery();
myconn.Close();
}
public String GetShoppingCartId()
{
//获取当前ASP.NET请求的HttpContext
System.Web.HttpContext thecontext = System.Web.HttpContext.Current;
//如果用户已经通过登录认证或者注册完毕,则使用该用户的UserID作为永久购物车的ID,并返回这个ID
if (thecontext.User.Identity.Name != "")
{
return thecontext.User.Identity.Name;
}
//如果用户尚未通过认证,则要分两种情况进行处理。
//如果Cookies[Store_CartID"]不为空则获取这个cookie值作为临时购物车的ID并返回。
//反之随机产生一个新值作为临时购物车ID并返回。
if (thecontext.Request.Cookies["Store_CartID"] != null)
{
return thecontext.Request.Cookies["Store_CartID"].Value;
}
else
{
//产生一个新的随机的GUID
Guid tempShoppingCartId = Guid.NewGuid();
//把tempCartId发送到客户端,并作为一个cookie保存下来
thecontext.Response.Cookies["Store_CartID"].Value = tempShoppingCartId.ToString();
//函数返回这个tempCartId
return tempShoppingCartId.ToString();
}
}
// AddItemtoShoppingCart方法负责往购物车里面添加一个新商品
public void AddItemtoShoppingCart(string cartID, int BookID, int quantity)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("AddItemtoShoppingCart", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterBookID = new SqlParameter("@BookID", SqlDbType.Int, 4);
parameterBookID.Value = BookID;
myCommand.Parameters.Add(parameterBookID);
SqlParameter parameterCartID = new SqlParameter("@CartIDString", SqlDbType.NVarChar, 50);
parameterCartID.Value = cartID;
myCommand.Parameters.Add(parameterCartID);
SqlParameter parameterQuantity = new SqlParameter("@BookQuantity", SqlDbType.Int, 4);
parameterQuantity.Value = quantity;
myCommand.Parameters.Add(parameterQuantity);
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myconn.Close();
}
public int CountShoppingCartItem(string cartID)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("CountShoppingCartItem", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterCartID = new SqlParameter("@CartIDString", SqlDbType.NVarChar, 50);
parameterCartID.Value = cartID;
myCommand.Parameters.Add(parameterCartID);
SqlParameter parameterItemCount = new SqlParameter("@ItemCount", SqlDbType.Int, 4);
parameterItemCount.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterItemCount);
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myconn.Close();
//利用存储过程的OUTPUT参数返回ItemCount,即图书的数量
return ((int)parameterItemCount.Value);
}
public SqlDataReader DisplayShoppingCart(string cartID)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("DisplayShoppingCart", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterCartID = new SqlParameter("@CartID", SqlDbType.NVarChar, 50);
parameterCartID.Value = cartID;
myCommand.Parameters.Add(parameterCartID);
//执行数据操作命令
//SqlDataReader读取数据到记录集后,会自动关闭数据库的连接
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//返回DataReader的结果
return result;
}
// ShoppingCartTotalCost方法返回购物车中所有商品的价格总额
public decimal ShoppingCartTotalCost(string cartID)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("ShoppingCartTotalCost", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterCartID = new SqlParameter("@CartIDString", SqlDbType.NVarChar, 50);
parameterCartID.Value = cartID;
myCommand.Parameters.Add(parameterCartID);
SqlParameter parameterTotalCost = new SqlParameter("@TotalCost", SqlDbType.Money, 8);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -