0

MySQL データベースにバインドされた DataGridView オブジェクトを含むフォームに「更新」ボタンを提供したいと考えています。MySQLCommand、MySQLDataAdapter、MySqlCommandBuilder、および DataSet オブジェクトを「新規作成」し、クエリを再実行してバインディング ソースを DataGridView オブジェクトにリロードすることにより、計算フィールドを含むクエリから列が入力されていない画面を取得しました。

計算列がある場合、これは機能しません。

確かに、DB から DataGridView オブジェクトをリロードする何らかの方法が必要です。

.NET Framework 4.0、MySQL Community Server 5.3.33、および MySQL Data Connector/.NET V 6.7.4 で SharpDevelop C# 5 を使用しています。

どんなリードでも大歓迎です!


ジェシーとブライアン、

私はWinFormsをやっています - はっきりしていなくてごめんなさい。私はちょうど解決策を考え出しました。まず、初期ロードで実行されたものを実行するだけでは十分ではありません。MySqlCommand、MySQLDataAdapter、MySqlCommandBuilder、および DataSet オブジェクトを「新規作成」してから、フォーム ロードのようにデータ フェッチを実行する必要があることがわかりました。また、これは、「編集」のように見えたり匂いがするものを実行しているときに呼び出すことはできません。そうしないと、例外がスローされます。編集直後にフォームを更新したかったので、フォームにタイマーを配置し、RowValidated イベントの最後で有効にして、タイマーに ReloadGrid ルーチンを呼び出させました。また、ユーザーがオンの場合、たとえば行 822 では、フォーカスが行 0 とセル 0 に移動したことがわかったので、現在の行とセルをポイントに保存し、データの更新後にフォーカスを元に戻します。

4

1 に答える 1

0
private void BindGrid(){
//retrieve data

//bind
DataGridView.DataSource = dataSource;
DataGridView.DataBind();
}

//call BindGrid() anytime you need to refresh data, for example in a button event click handler
于 2013-08-15T22:08:20.237 に答える