実験目的で、データベースに書き込む ASP.net Web フォームを作成しました。同じデータベースに書き込む Windows フォーム (c#) も作成しました。Webフォームはテキストをグリッドビューに表示し、Winフォームはテキストをデータグリッドビューに表示します。
私の質問は、データベースが他の人によって更新されたときに、Windows フォームと Web フォームを更新することは可能ですか? もしそうなら、誰かが私を正しい方向に向けることができますか?
実験目的で、データベースに書き込む ASP.net Web フォームを作成しました。同じデータベースに書き込む Windows フォーム (c#) も作成しました。Webフォームはテキストをグリッドビューに表示し、Winフォームはテキストをデータグリッドビューに表示します。
私の質問は、データベースが他の人によって更新されたときに、Windows フォームと Web フォームを更新することは可能ですか? もしそうなら、誰かが私を正しい方向に向けることができますか?
ジョージは彼のコメントで 1 つの良いアプローチを提案しています。
ASP.Net の場合、SignalRを使用して Web ページを更新できます。
ASP.NET SignalR は、リアルタイム Web 機能をアプリケーションに追加するプロセスを簡素化する ASP.NET 開発者向けの新しいライブラリです。リアルタイム Web 機能は、サーバー側のコードが、コンテンツが利用可能になるとすぐに、接続されたクライアントにコンテンツをプッシュする機能です。
従来のアプローチでは、デスクトップ アプリによる "ポーリング" が必要でした。つまり、新しい情報があるかどうかを確認するために数秒ごとにリクエストを作成していました。このアプローチは、リソースを大量に消費する可能性があります。もちろん、Web ページからポーリングすることもできます。
これを行う最も簡単な方法は、WinForm と WebForm の 2 つのタイマー コントロールを使用することです。
そして、必要な間隔でデータセットを再バインドするだけです。
データの再バインド
grdWaiver.DataSource = dv 'Set the dataview to the DataGrid
grdWaiver.DataBind()
(上記では、データビューをデータソースとして使用しました)