3

私は助けが必要です。現在、WinformsとC#を使用してデータ管理アプリケーションを構築しています。このアプリケーションは10台のコンピューターにインストールされており、サーバー上の1つのデータベースに接続されています。オフィスのみのネットワーク。

これらのアプリケーションは、データグリッドビューを使用して従業員のリストを表示します。

現在の主な問題は、PC-Aのユーザーが新しいレコードを入力したり、従業員のレコードを更新したりした場合、PC-Bのデータグリッドビューが自動的に更新されないことです。したがって、PC-Bのデータグリッドビューを更新する場合は、[更新]ボタンを押してレコードを再読み込みする必要があります。

質問は今、「データグリッドビュー」を自動的に更新できる他の方法がありますか?

このメソッドの名前がわからないので、この問題を解決するのを手伝ってくれる人がいることを願っています。私の質問がすでに存在する場合は、誰かが私にリンクを教えてくれることを願っています。

手伝ってくれてありがとう :)

4

2 に答える 2

1

目的を達成するには、かなり複雑なアーキテクチャ作業を行う必要があります。ここに簡単な修正はありません、私は恐れています。

問題は、イベントに基づいてデータグリッドを更新する必要があることですが、そのイベントはデータベース内のアプリケーションの外部で発生します。そのEVENTを登録するには、すべてのINSERTS / UPDATES/DELETESの処理を担当するクラスまたはサービスが必要です。

すべてのテーブルまたはビューをARTICLESとして定義すると、パブリッシャー/サブスクライバーモデルを作成できます。データサービスは、アプリケーションのすべての挿入の更新と削除を処理し、記事が変更されたという通知を記事のすべてのサブスクライバーにプッシュします。各ページには、データグリッドに表示されるデータに関連する記事をサブスクライブするクラスを設定できます。記事が更新されたというメッセージを受信すると、データグリッドをデータソースに再バインドします。オブザーバーパターンに関するこのWIKIPEDIAの記事を読んで、アーキテクチャがどのように見えるかを理解してください。

http://en.wikipedia.org/wiki/Observer_pattern

于 2012-10-07T10:35:28.737 に答える
0

バージョン列をデータベーステーブルに追加できます。その後、データベースに定期的に(プーリングして)、最後に受信したバージョンよりも大きいバージョンのレコードを取得するように依頼する必要があります。

于 2012-10-07T10:25:58.643 に答える