asp.Netショッピングカート、注文及びアナログ支付宝支払い(三)---注文書の提出

1495 ワード

注文書の設計が終わったら、注文処理の流れを整理します.
まず、ユーザーがカートの画面で決済をクリックすると、決済確認ページ(この場合は確認するだけで、ユーザーに出荷先を記入させるなど、本格的な注文はありません)に移動し、ユーザーの住所などの情報や購入する品物、総額などを表示し、ユーザーがクリックして確定すると、ストレージ・プロシージャを呼び出して受注を行い(受注テーブルと受注詳細テーブルにデータを挿入し、トランザクションとバッチで挿入されたsql文を使用して該当するカート・アイテムを削除します)、オンラインで支払います.
ストレージ・プロシージャは次のとおりです.mssql 2005:
create proc pro_pay
@orderId nvarchar(200),--   ,         (     )+  Id
@userId int,           --  Id
@address nvarchar(200),--    
@totalPrice decimal(10, 2) output--    ,   
as
--         
declare @error int
set @error=0
--     
select @totalPrice=sum(UnitPrice*[Count]) from T_Car inner join T_Books on T_Car.BookId=T_Books.Id
where UserId=@UserId
--    
begin transaction
--    
insert into T_Orders(Id,OrderDate,UserId,TotalPrice,[Address]) values(@orderId,getdate(),@UserId,@totalPrice,@address)
set @error=@error+@@error
--     
insert into T_OrderBook(OrderId,BookId,[Count],UnitPrice) select @orderId,BookId,[Count],UnitPrice
from T_Car inner join T_Books on T_Car.BookId=T_Books.Id where UserId=@userId
set @error=@error+@@error
--       
delete from T_Car where UserId=@userId
set @error=@error+@@error
--    
if(@error>0)
 begin
  rollback transaction
 end
else
 begin
  commit transaction
 end 
は、記憶プロセスを呼び出すと、アリペイの支払いにジャンプし、adoを使用することを説明する.Netでストレージ・プロシージャを呼び出す際に発生する問題は、主にSqlCommandのCommandType属性をCommandTypeに設定することである.StoredProcedureは、ストレージ・プロシージャ名を入力します(exec+ストレージ・プロシージャ名を書くかどうかはわかりませんが、結果はストレージ・プロシージャ名さえあればいいのですが、私が甘すぎるのではないでしょうか==.).