2009-06-04 9 views
0

私はthis tutorialのように、DataTableAdatperからデータオブジェクトを作成したDataGridViewを持っています。DataGridViewで1行だけを更新するにはどうすればよいですか?

私はODBC MySQL接続なので、DBDirectMethodsは私のために生成していないと思います。

私の質問は、ユーザーがグリッドで編集した後、DBの特定の行を更新するにはどうすればいいですか?私のアダプタにDeleteCommandを指定する必要はありますか?いつ呼び出されますか?

答えて

1

あなたは通常、DeleteCommandの、UpdateCommandのを作成する必要がありますし、自分自身をInsertCommandはありません:CommandBuilderはあなたのためにそれを行うことができます。

private void UpdateCurrentRow() 
{ 
    DataRowView drv = dataGridView1.CurrentRow.DataBoundItem as DataRowView; 
    DataRow[] rowsToUpdate = new DataRow[] { drv.Row }; 

    OdbcDataAdapter adapter = new OdbcDataAdapter("SELECT * FROM FOO", connection); 
    OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter); 
    adapter.Update(rowsToUpdate); 
} 
+0

をしかし、私はそれがどの行を更新する方法を教えてください?グリッドコントロールではできませんか? –

+0

DataGridViewはDataSource(つまり、あなたのケースではDataSet)を更新しますが、DataSetの変更を反映するようにデータベースを更新するのはあなたの責任です。また、DataTable全体でadapter.Updateを呼び出すこともできます。変更された行だけがデータベース内で更新されます。 –

関連する問題