DataGridView不提交对数据库的更新

问题描述 投票:1回答:1

我使用设计器将datagridview的数据源设置为我的SQL数据库表。在RowLeave事件上,我使用BindingSource.EndEdit来提交更改。但是,datagridview中的更改未反映在数据库中。正确调用EndEdit。

private void UI_DGV_AppData_RowLeave(object sender, DataGridViewCellEventArgs e)
{
    try
    {
        entriesBindingSource.EndEdit();
        UI_DGV_AppData.Update();
        UI_DGV_AppData.Refresh();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
} 
c# sql winforms datagridview
1个回答
0
投票

正如Crowcoder所说,EndEdit()不会将更改提交到数据库,您将不得不使用适配器。在你调用EndEdit()之后,你需要在你的表适配器上调用Update()。既然你使用了设计师,它可能看起来像这样:

entriesBindingSource.EndEdit();
try
{
    DataRow row = DataSet.Entries.Rows[e.RowIndex];
    if (row.RowState == DataRowState.Modified)
        entriesTableAdapter.Update(row);
}  

DataSet.Entries将是您调用数据集和表的任何内容。并且可能不需要DGV更新/刷新。检查行是否也被实际修改是个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.