📄 bookstore.cs
字号:
parameterTotalCost.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterTotalCost);
myCommand.ExecuteNonQuery();
myconn.Close();
//返回价格总额
if (parameterTotalCost.Value.ToString() != "")
{
return (decimal)parameterTotalCost.Value;
}
else
{
return 0;
}
}
// ShoppingCartRemoveItem方法用于从购物车中删除一种商品。
public void ShoppingCartRemoveItem(string cartID, int BookID)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("RemoveShoppingCartItem", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterCartIDString = new SqlParameter("@CartIDString", SqlDbType.Int, 4);
parameterCartIDString.Value = cartID;
myCommand.Parameters.Add(parameterCartIDString);
SqlParameter parameterBookID = new SqlParameter("@BookID", SqlDbType.NVarChar, 50);
parameterBookID.Value = BookID;
myCommand.Parameters.Add(parameterBookID);
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myconn.Close();
}
// ShoppingCartUpdate方法用于更新购物车里某件商品的购买数量
public void ShoppingCartUpdate(string cartID, int BookID, int quantity)
{
//在修改购物车里某本图书的购买数量时,如果用户输入一个负数,则该函数抛出异常
if (quantity < 0)
{
throw new Exception("购买数量不能为负数");
}
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("UpdateShoppingCart", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterCartIDString = new SqlParameter("@CartIDString", SqlDbType.NVarChar, 50);
parameterCartIDString.Value = cartID;
myCommand.Parameters.Add(parameterCartIDString);
SqlParameter parameterBookID = new SqlParameter("@BookID", SqlDbType.Int, 4);
parameterBookID.Value = BookID;
myCommand.Parameters.Add(parameterBookID);
SqlParameter parameterBookQuantity = new SqlParameter("@BookQuantity", SqlDbType.Int, 4);
parameterBookQuantity.Value = quantity;
myCommand.Parameters.Add(parameterBookQuantity);
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myconn.Close();
}
public int PlaceOrder(string UserID, string cartID)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("AddOrder", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterUserID = new SqlParameter("@UserID", SqlDbType.Int, 4);
parameterUserID.Value = Int32.Parse(UserID);
myCommand.Parameters.Add(parameterUserID);
SqlParameter parameterCartID = new SqlParameter("@CartIDString", SqlDbType.NVarChar, 50);
parameterCartID.Value = cartID;
myCommand.Parameters.Add(parameterCartID);
SqlParameter parameterOrderDate = new SqlParameter("@OrderDate", SqlDbType.DateTime, 8);
parameterOrderDate.Value = DateTime.Now;
myCommand.Parameters.Add(parameterOrderDate);
SqlParameter parameterOrderID = new SqlParameter("@OrderID", SqlDbType.Int, 4);
parameterOrderID.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterOrderID);
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myconn.Close();
//利用存储过程的OUTPUT参数返回OrderID
return (int)parameterOrderID.Value;
}
public OrderDetails GetOrderDetails(int orderID, string userID)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlDataAdapter myCommand = new SqlDataAdapter("OrdersDetail", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterOrderID = new SqlParameter("@OrderID", SqlDbType.Int, 4);
parameterOrderID.Value = orderID;
myCommand.SelectCommand.Parameters.Add(parameterOrderID);
SqlParameter parameterUserID = new SqlParameter("@UserID", SqlDbType.Int, 4);
parameterUserID.Value = Int32.Parse(userID);
myCommand.SelectCommand.Parameters.Add(parameterUserID);
SqlParameter parameterOrderDate = new SqlParameter("@OrderDate", SqlDbType.DateTime, 8);
//指出该参数是存储过程的OUTPUT参数
parameterOrderDate.Direction = ParameterDirection.Output;
myCommand.SelectCommand.Parameters.Add(parameterOrderDate);
SqlParameter parameterOrderTotalCost = new SqlParameter("@OrderTotalCost", SqlDbType.Money, 8);
parameterOrderTotalCost.Direction = ParameterDirection.Output;
myCommand.SelectCommand.Parameters.Add(parameterOrderTotalCost);
//创建数据集
DataSet myDataSet = new DataSet();
//往数据集里面填充数据
myCommand.Fill(myDataSet, "OrderItems");
//创建OrderDetails类的对象
OrderDetails myOrderDetails = new OrderDetails();
//利用存储过程的参数给对象myOrderDetails赋值
myOrderDetails.OrderDate = (DateTime)parameterOrderDate.Value;
myOrderDetails.OrderTotalCost = (decimal)parameterOrderTotalCost.Value;
myOrderDetails.OrderItems = myDataSet;
//返回数据
return myOrderDetails;
}
public SqlDataReader GetUserOrders(String UserID)
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
SqlCommand myCommand = new SqlCommand("ListOrders", myconn);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterUserID = new SqlParameter("@UserID", SqlDbType.Int, 4);
parameterUserID.Value = Convert.ToInt32(UserID);
myCommand.Parameters.Add(parameterUserID);
//执行数据操作命令
//SqlDataReader读取数据到记录集后,会自动关闭数据库的连接
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//返回DataReader的结果
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -