C# 如何在DataGridView中只更新一行?
我有一个从DataTableAdatper填充的DataGridView,如中所示 我猜因为它是ODBC MySQL连接,所以它不会为我生成DBDirectMethodsC# 如何在DataGridView中只更新一行?,c#,.net,database,datagridview,data-access-layer,C#,.net,Database,Datagridview,Data Access Layer,我有一个从DataTableAdatper填充的DataGridView,如中所示 我猜因为它是ODBC MySQL连接,所以它不会为我生成DBDirectMethods 我的问题是,在用户在网格中编辑了数据库中的特定行之后,如何更新该行?是否需要在适配器中指定DeleteCommand?什么时候调用它?您通常不需要自己创建DeleteCommand、UpdateCommand和InsertCommand:CommandBuilder可以为您完成: private void UpdateCurr
我的问题是,在用户在网格中编辑了数据库中的特定行之后,如何更新该行?是否需要在适配器中指定DeleteCommand?什么时候调用它?您通常不需要自己创建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);
}
但是我如何告诉它要更新哪些行呢?网格控件不能这样做吗?(即,确定修改了哪些行,并为它们调用更新?)DataGridView更新其数据源(即,您的案例中的数据集),但您有责任更新数据库以反映数据集中的更改。您还可以对整个DataTable调用adapter.Update,在数据库中只更新修改过的行。