C# datagridView 鼠标不离开无法更新的问题解决

来源:互联网 发布:python双引号转义字符 编辑:程序博客网 时间:2024/05/21 08:35

1、环境:W7+VS2010+ORACLE

在程序中要求修改后保存。采用datagridview与BINDSOURCE 认为会很方便。

另一个原因是数据列太多,不愿逐个去做数据格式验证。采用强DATASET 可以适当减少不必要的错误。

2、问题:用户在保存后提示保存成功,但重新获取数据发现没有保存。

3、分析:经分析发现,当用户编辑完某单元格后直接点保存时,可正常执行保存操作,但数据未保存;如编辑完后在其它单元格点选后再点保存可正常保存。

4、解决:根据现象认为是鼠标不移走,单元格认为尚在编辑状态。

第一次尝试:

if (this.dataGridView1.IsCurrentCellInEditMode){                      dataGridView1.EndEdit();}
结果发现这样不行,可能是虽然终止了编辑,但未提交?

第二次尝试:

if (this.dataGridView1.IsCurrentCellInEditMode){                      dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)}
还是不行,没招了,在网上找,最直接的办法。即然离开单元格就好使,那么当保存时如有单元格在编辑状态,强制其离开编辑状态:
if (this.dataGridView1.IsCurrentCellInEditMode){   this.dataGridView1.CurrentCell = null;}

问题解决,但被编辑单元格在保存的瞬间会有显示空的情况(不必担心)。

-------------------------------------------------------------------------------------------------------

另:与此问题相关的事,当换了一个数据库环境之后,保存仍不好使!经过反复研究得出如下结论:

由于在设计时在界面上拖拽了DATASET并生成了Adapter 正常在APPCONFIG中记录了连接串信息。但当时由于要单独配置数据连接就把此字符串删除了。后来导致

有人可能会烦,一句话能解决的事,为什么写那么多,影响大家阅读,但主要是想把问题说清楚!希望大家理解!

原创粉丝点击