dataGridView EndEdit()

本文深入探讨了DataGridView控件的EndEdit方法的重要性,特别是在数据同步和数据库交互过程中的关键作用。文章强调了在更新数据库前调用EndEdit确保数据一致性的必要性,并介绍了在使用BindingSource绑定时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
EndEdit()用于让dataGridView控件所有单元格结束编辑状态,失去焦点。

这个操作很关键,在实际开发中,往往会将DataGridView中的数据与内存中的某DataTable关联(绑定)起来。用户在与DataGridView控件交互完(修改单元格数据)后,如果不再点击下DataGridView其它位置,或是让程序的其它控件获得焦点,那么这个单元格内被修改后的数据就没有与内存中的DataTable某行某列的值对应成功。也就是看起来好像DataGridView中这个位置的数据改过了,但是实际上DataTable对应的值还是未修改之前的值。假如要跟数据库进行交互(从DataTable取值,然后更新数据库中相应表),那么就会出现数据没有被修改的现象。

所以,最好的办法是在执行更新数据库操作前,让DataTable中的值确实与DataGridView控件值同步。DataGridView控件的 EndEdit()就是这个作用。

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

 

 

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

DataGridView绑定BindingSource时,在DataGridView执行EndEdit()方法时,BindingSource也需要同时执行EndEdit()方法;要不BindingSource的数据源DataTable中所有DataRow的RowState都会变为Modified状态。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

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

DataGridView 绑定DataTable方式,进行编辑。如果只在表格的某一行内进行编辑,且保持焦点只在这一行变动。进行数据保存时这一行的变更就无法正常保存。然后我有试着在保存之前调用 DataGridView 的EndEdit .结果还是无法保存这一行的修改.最后没有办法就试了试 bindingSource.先将 DataTable 绑定到 bindingSource. 再将 bindingSource设置为 DataGridView 的数据源.在保存之前调用 bindingSource 的 EndEdit .就能正常保存修改了.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值