はあなたのデータソースは更新が発生したとき、トリガ、それにイベントを持っている必要があります。おそらく、そのイベントにアタッチし、ユーザーの介入なしにその火にリフレッシュを持つことができます - それはイベントトリガーから発射ますので、あなたはおそらく、UIを更新するために、デリゲートを使用する必要がありますけれども。
わかりやすく言えば、私はSQLに変更のフラグを立てる方法がないことを知っています。私は彼らにバインドしていたCRUD操作を実装したライブラリがあるという印象を受けていました。と述べた。解説以下だったしたので、私は今示唆した上記のPieterとして、より多くの情報に基づいた意思決定
EDITバージョン2
私はタイマーを作成することをお勧めを行い、変更のためのデータベースをポーリングすることができます。データベースの値をカウンタとして使用して、いつ更新を取得する必要があるかを知る(つまり、テーブルに主キーがある場合はWHERE key > last_key_receieved
をチェックしてください)
また、別のスレッドで作業するので、 UIを安全に更新するメソッドを作成する必要があります。リストビューで持っているどのように多くの列によっては、プロトタイプは異なりますが、前提は同じです:
Timer updateScoresTimer = new Timer();
updateScoresTimer.Tick += delegate
{
// 1. grab the database info
// 2. filter for post-worthy changes
// 3. iterate over changes, passing the UI info to AddScore(...)
};
updateScoresTimer.Interval = 30000;
updateScoresTimer.Start();
public delegate void AddScoreHandler(String arg1, String arg2, String arg3);
public void AddScore(String arg1, String arg2, String arg3)
{
if (this.listView1.InvokeRequired)
this.BeginInvoke(new AddScoreHandler(this.AddScore), new object[]{ arg1, arg2, arg3 });
else
{
ListViewItem lvi = new ListViewItem(arg1);
lvi.SubItems.AddRange(new string[]{ arg2, arg3 });
this.listView1.Items.Add(lvi);
}
}
何かがその構造に変化したら、あなたがイベントを送信するためにMySQLのDBを期待している/あなたのコードにトリガ? –
アプリケーションによって変更が行われましたか?そうでない場合、アプリケーションは変更が発生したことをどのように知っていますか? – Fosco