在每次循环时item都包含购物车中的实际商品当用户继续结账时需要执行以下操作
在数据库中创建一个订单并将它添加到Orders表中
循环遍历购物车中的商品并将每个商品添加到OrderLines表中
听起来工作量好像比较大确实也有许多代码(包括注释在内大概有行)但实际上很简单它以第章中介绍的一些数据技巧为基础虽然没有详细介绍但该代码看起来应该比较熟悉以下代码显示了购物车中的实际商品如何被添加到数据库中
cmdCommandText = INSERT INTO OrderLines(OrderID ProductID Quantity Price) & _
VALUES (@OrderID @ProductID @Quantity @Price)
cmdParametersClear()
cmdParametersAdd(@OrderID DataSqlDbTypeInt)
cmdParametersAdd(@ProductID DataSqlDbTypeInt)
cmdParametersAdd(@Quantity DataSqlDbTypeInt)
cmdParametersAdd(@Price DataSqlDbTypeMoney)
cmdParameters(@OrderID)Value = OrderID
For Each item As CartItem In ProfileCartItems
cmdParameters(@ProductID)Value = itemProductID
cmdParameters(@Quantity)Value = itemQuantity
cmdParameters(@Price)Value = itemPrice
cmdExecuteNonQuery()
Next
so clear the cart
ProfileCartItemsClear()
第一行简单地设置了用于插入记录项的SQL语句随后的几行创建了一些参数并设置了OrderID对旬cmd是一个SqICommand对象它带有一个相关的连接在循环过程中每个item的详细资料都被复制到这些参数的然后再执行查询每个订单项都要执行该过程因此每次都要执行这个SQL语句在所有项都被添加到数据库中之后清空该购物车的Items集合
[] [] [] [] [] [] [] []