-1

私はwpf、c#、sql expressアプリケーションを持っています。これは、データベースを備えたソフトウェアを意味します。タブアイテムがあるとしましょう。タブアイテム内にデータグリッドがあります。1つのデータグリッドからスタッフを購入し、バスケットデータグリッドに配置します。メインデータグリッドに10本の鉛筆があり、5本購入したとします。これでメインデータグリッドに5本、バスケットデータグリッドに5本になります。購入ボタンを押すまで、バスケットに残ります。今私の質問は、電気が落ちて私のアプリケーションが閉じられたとしましょう。私のメインデータグリッドでは、初期化後は5で、バスケットは0です。だから私はそれが私のバスケットに入っていたものを失っています。アプリケーションを閉じたり、タブ項目を閉じたりしながら管理できました。しかし、アプリケーションが不適切に閉じられた場合、それを管理することはできません。C#でこれを処理するためのメカニズム、メソッド、イベントはありますか?私はあなたのほとんどがトランザクションを使用すると言うことを知っています、私はすぐにはない次のバージョンで使用します。今のところ、トランザクションなしでこれに対処する方法を見つけたいと思います。私の言いたいことをご理解いただければ幸いです。何か案は?

ここでの例あなたがあなたの株(メインデータグリッド)に12本のペンと15本の鉛筆を与えたと仮定します。そして、あなたはあなたの株から2本のペンと5本の鉛筆を売っています。そして、あなたが売っているとき、それはバスケットデータグリッドに行きます。現在、メインデータグリッドに10本のペンと10本の鉛筆があります。バスケットには2本のペンと5本の鉛筆が入っています。送信ボタンをクリックしないと、販売データベースに記録されません。私が仕事をしていて、在庫から商品を販売していて、電気が落ちたとします。私の在庫には10本のペンと10本の鉛筆があります。バスケットは空です。そして、ボタンをクリックしなかったため、販売データベースには記録されません

4

2 に答える 2

0

最も簡単な方法は、アイテムが追加されたときにバスケットの詳細とともにデータベースにダーティ フラグを設定することです。

次に、チェックアウト プロセスが完了すると、ダーティ フラグがクリアされます。

その後、アプリケーションを再起動するときに、このフラグを確認してください。それが明確であれば、ゼロから始めることができます。設定されている場合は、バスケットの詳細を引き戻し、必要に応じて処理します。

あまりきれいではありませんが、仕事はうまくいきます。

于 2013-03-01T17:24:31.967 に答える