asp.Netショッピングカート、注文及びアナログ支付宝支払い(三)---注文書の提出
1495 ワード
注文書の設計が終わったら、注文処理の流れを整理します.
まず、ユーザーがカートの画面で決済をクリックすると、決済確認ページ(この場合は確認するだけで、ユーザーに出荷先を記入させるなど、本格的な注文はありません)に移動し、ユーザーの住所などの情報や購入する品物、総額などを表示し、ユーザーがクリックして確定すると、ストレージ・プロシージャを呼び出して受注を行い(受注テーブルと受注詳細テーブルにデータを挿入し、トランザクションとバッチで挿入されたsql文を使用して該当するカート・アイテムを削除します)、オンラインで支払います.
ストレージ・プロシージャは次のとおりです.mssql 2005:
まず、ユーザーがカートの画面で決済をクリックすると、決済確認ページ(この場合は確認するだけで、ユーザーに出荷先を記入させるなど、本格的な注文はありません)に移動し、ユーザーの住所などの情報や購入する品物、総額などを表示し、ユーザーがクリックして確定すると、ストレージ・プロシージャを呼び出して受注を行い(受注テーブルと受注詳細テーブルにデータを挿入し、トランザクションとバッチで挿入された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+ストレージ・プロシージャ名を書くかどうかはわかりませんが、結果はストレージ・プロシージャ名さえあればいいのですが、私が甘すぎるのではないでしょうか==.).