2009-06-04 89 views
0

我有一個從DataTableAdatper填充的DataGridView,如this tutorial如何只更新DataGridView中的一行?

我猜是因爲它是一個ODBC MySQL連接,它不會爲我生成DBDirectMethods。

我的問題是如何在用戶在網格中編輯後更新數據庫中的特定行?我需要在我的適配器中指定一個DeleteCommand嗎?什麼時候會被叫?

回答

1

您通常不需要創建的DeleteCommand,更新命令和自己的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

但我怎麼告訴它要更新的行?網格控件無法做到這一點? (即決定哪些行被修改,併爲它們調用更新?) – 2009-06-04 08:58:31