0

私のアプリケーションには、選択コマンドを使用してデータテーブルを埋めるボタンがあります。このデータテーブルは、データグリッドビューへのソースバインドです。

私が達成したいのは次のとおりです.2番目の「更新」ボタンでデータグリッドビューで行われた変更(行の編集、行の削除)を書き戻す必要があります.MySqlCommandBuilderに関する情報を見つけましたが、MySqlCommandBuilder

ユーザーがデータテーブルを更新してmysqlに書き戻すことができるように、これを機能させるにはどうすればよいですか。

4

1 に答える 1

2

最初にデータテーブルにデータを入力したとき、次のようなコードで MySqlDataAdapter というオブジェクトのインスタンスを使用しました

string query = "SELECT * FROM yourTableName";
MySqlDataAdapter adapter = new MySqlDataAdapter(query, connString);
MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter);
DataTable dt = new DataTable();
adapter.Fill(dt);
BindingSource bs = new BindingSource();
bs.DataSource = dt;
dgview.DataSource = bs;

ここで、データグリッドを変更して行を変更、追加、または削除すると、データグリッドに加えたすべての変更が基になるデータ ソース (データ テーブル) に反映されます。データベースのレコードを更新する場合は、その MySqlDataAdapter を維持する必要があります。 (フォーム内のグローバル変数として) 必要なときにアダプター インスタンスの Update メソッドを呼び出すだけです。

BindingSource bs = dgview.DataSource As BindingSource;
adapter.Update(bs.DataSource as DataTable);

この呼び出しは、MySqlCommandBuilder によって作成された MySqlCommand クラスのインスタンスを使用して、データベースを更新します (MySqlCommandBuilder は、1 つのテーブルのみを含む選択クエリでのみ機能することに注意してください。結合は許可されません)。

于 2013-09-02T22:26:54.437 に答える