datagridview单元格修改之后提交内容到datagridview绑定的dataTable代码
时间: 2024-03-09 20:44:58 浏览: 79
要将 DataGridView 单元格中修改后的内容提交到 DataGridView 绑定的 DataTable 中,可以通过以下步骤实现:
1. 在 DataGridView 的 CellValueChanged 事件中,获取修改后的单元格值和行列索引。
2. 使用行列索引获取对应的 DataTable 中的 DataRow 对象。
3. 使用 DataRow 对象的 SetField 方法更新对应列的值。
4. 最后,调用 DataTable 的 AcceptChanges 方法提交修改。
下面是一个简单的示例代码,演示如何将 DataGridView 中修改后的内容提交到 DataTable 中:
```csharp
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0) // 排除行头列和列头行
{
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
DataRow dataRow = ((DataRowView)row.DataBoundItem).Row; // 获取绑定的 DataRow
// 获取修改后的单元格值
object newValue = row.Cells[e.ColumnIndex].Value;
// 更新对应列的值
dataRow.SetField(dataGridView1.Columns[e.ColumnIndex].Name, newValue);
// 提交修改
((DataTable)dataGridView1.DataSource).AcceptChanges();
}
}
```
在上述代码中,我们使用了 DataRowView 对象获取了绑定的 DataRow,然后使用 SetField 方法更新对应列的值,最后调用 DataTable 的 AcceptChanges 方法提交修改。
需要注意的是,如果使用了数据适配器(如 SqlDataAdapter)将 DataTable 与数据库关联起来,提交修改后还需要调用适配器的 Update 方法将修改保存到数据库中。
阅读全文