0

2人のユーザーがSQLサーバーから同じデータにアクセスするのを防ぐ最善の方法は何なのか、私には本当にわかりません。ユーザーがレコードをクリックして変更するc#を使用してwinアプリを開発しました。ユーザーがレコードをクリックすると、ユーザーがデータを変更できるデータを含む新しいフォームが表示されます。アプリケーションが 2 台の PC で実行されており、2 人のユーザーが同じレコードを開き、データベースに保存される同じデータを最後に更新するとします。

だから私がしたこと...私はテーブルを作成し、ユーザーがデータレコードを開くたびにそのテーブルにレコードIDを保存します。レコードIDがテーブルに保存されている場合、次回は別のユーザーがそのデータにアクセスできず、作業中のメッセージを取得できませんこれは記録します。このようにして私の目的は解決されますが、それが正しいか最善のアプローチかどうかはわかりません。

ですから、この状況を最善の方法で処理する方法を教えてください。ありがとう

4

2 に答える 2

0

複数のソリューションがあります。

短時間だけ 1 つのテーブルにアクセスする場合は、行ロックを作成できます。

データの取得と書き込みの間にトランザクションを作成できます。ただし、コーヒー 1 杯と呼ばれる症候群に常に注意する必要があります:p データを取得し、立ち去り、データをブロックする人々。

おそらく、ユーザーが c# コードで得た以前の結果を変更、保存、比較できるようにしてください。異なる場合は、クライアントにアドバイスを与えてください。彼がオープントランザクションを受け入れる場合は、保存します

于 2013-10-30T08:33:35.187 に答える