3

私は C# でアプリケーションを作成しています。このアプリケーションでは、異なるコンピューター上の 2 人以上のユーザーが、ネットワーク上で共有されている SQLite データベース内の同じテーブルから DataTable を作成しています。ユーザーがデータベース操作 (INSERT、UPDATE、または DELETE) を行った場合に、データベースからテーブル全体をリロードしなくても、他のユーザーの DataTable が更新されたままになるように、すべてのユーザーのデータテーブルを同期したままにしたいと考えています。

これを行う最も簡単な方法は何ですか?

4

1 に答える 1

0

クライアント側でキャッシュを使用できます。

それがここで提案されたものです: C#でデータベースからデータテーブルにデータを同期/チェックする方法は?

そこで提案された ASP.NET キャッシュの代わりに、Caching Application Block を使用できます: http://msdn.microsoft.com/en-us/library/ff649093.aspx

この SO スレッドでこの例を見つけることができます: Microsoft Enterprise Library Caching Application Block not thread safe?

キャッシュは、データベース内のすべての変更を X 秒ごとにチェックする責任があり、変更が見つかった場合は、データベースから再ロードされ、アプリケーションで更新する必要があります。

キャッシュを使用して、これをよりスマートに行うことができます。

すべての INSERT、UPDATE、および DELETE 命令を受信するサーバー上にサービスを作成し、それらをデータベースに適用してから、すべてのクライアントのキャッシュに無効化メッセージを送信して、データを更新するように伝えます。

これは、起動時にクライアントが無効化通知サービスにサブスクライブし、変更があったときに通知を受けることを意味します。

これに興味がある場合は、ここに素晴らしいチュートリアルがありますキャッシュであり、これがどのように機能しているか。

于 2013-03-28T13:39:35.410 に答える