在设计完订单表之后,就要整理一下订单处理的流程了
首先,用户在购物车界面点击结算的时候,跳到一个结算确认页面(这时候只是确认,让用户填写收货地址等,没有真正的下订单),显示用户的地址等信息和要买的物品,总价等,当用户点击确定的时候,调用存储过程下订单(向订单表和订单明细表插入数据,并删除相应的购物车项,这里用到事务和批量插入的sql语句),去网上支付
存储过程如下,mssql2005:
pro_pay
--订单号,这里是根据当前时间(精确到毫秒)+用户Id
--用户Id
--收货地址
--输出参数,总金额
as
--记录错误信息的变量
int
0
--计算总价格
Id
UserId
--开始事务
transaction
--插入主表
)
error
--插入明细表
UnitPrice
userId
error
--删除购物车选项
userId
error
--完成事务
)
begin
transaction
end
else
begin
transaction
end
调用完存储过程之后,就是跳转到支付宝支付了,需要说明的是,使用ado.net调用存储过程的时候会遇到一些问题,主要是要将SqlCommand的CommandType属性设置为CommandType.StoredProcedure,然后将存储过程名传入(之前不懂以为是要写exec+存储过程名,结果只要存储过程名就好了,是不是我太天真了= =。。。
应用自 http://blog.csdn.net/qq1010885678/article/details/37501435