我正在以编程方式更新DGV中的某个单元格,当我调用我的UpdateDGV()时,它不会更新到数据库。但是,如果我手动更新该单元格,这是一个组合框并绑定(使用DataTable的数据库),并启动我的更新功能,它工作正常。几乎看起来组合框的特定属性尚未设置为修改或类似的东西。请参阅以下代码:
private void CheckForPendingStatus()
{
foreach (DataGridViewRow row in datagriview1.Rows)
{
if (row.Cells["status_cd"].Value.ToString().Equals(Constants.pending_status))// 'P'
{
row.Selected = true;
row.Cells["status_cd"].Value = "I";
UpdateDGV();
break;
}
}
}
private void UpdateDgv()
{
try
{
// Update the database with the user's changes.
dataAdapter.Update((DataTable)BindingSource1.DataSource);
}
catch (System.ArgumentNullException ArgNullExc)
{
MessageBox.Show("UpdateDgv - ArgumentNullException: error message: " + ArgNullExc.Message);
}
catch (System.InvalidOperationException InvalidOperExc)
{
MessageBox.Show("UpdateDgv - InvalidOperationException: error message: " + InvalidOperExc.Message);
}
catch (System.SystemException SysExc)
{
MessageBox.Show("UpdateDgv - SystemException: error message: " + SysExc.Message);
}
catch (Exception ex)
{
MessageBox.Show("UpdateDgv - Exception: error message: " + ex.Message);
}
}
我尝试使用以下代码查看是否有任何更改:
DataTable changes = ((DataTable)BindingSource1.DataSource).GetChanges();
if (changes != null)
{
//Update....
}
如上所述,当以编程方式进行更改时,当您实际单击组合框并更改值时,“更改”为空但不为空。
我是否还需要在该单元格的组合框中设置值成员和显示成员?将试图找出并看到。
非常感谢任何帮助,谢谢。