DataTable.AcceptChanges & DataAdapter.Update

The AcceptChanges method makes rows status to Unchanged, then the DataAdapter.Update method will think there's no data modification(it will check the rows status in fact, if the status is Unchanged it will do nothing for you), and will not update the data to the database.

So do not use the AcceptChanges method before you call DataAdapter.Update method, only the DataAdapter.Update(DataSet) is enough.

http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/3abaaa25-7b73-47f0-af37-01c89698028e

AcceptChanges方法会将所有改动保存到DataSet或DataTable中,使得所有行的状态都是Unchanged(没有被更改状态)

而DataAdapter.Update方法在保存数据到数据库表时做过一个检查,即检查表行是否被修改过,如果没被修改过,那么更需将不会执行任何命令,直接跳过本行,开始检查下一行,如此,一个表如果行都是Unchanged状态,那么它就不会被更新到数据库中。

所以,在更改了DataSet或DataTable后,若想调用DataAdapter.Update方法直接更新数据到数据库,那么你只需要这个Update方法,无需在此前调用一次AcceptChanges方法了。

修改:本文把添加、删除、更新都归纳到修改

下午想了3个来小时,就是没有头绪,一直不知道为什么在接受了更改之后,再调用保存方法,就不能把数据保存到数据库中。

晚上去同事家吃饺子,吃了足足23个,聊了一会儿天,11点了,该回家了,离家还有2、3分钟的时候,脑袋里突然又冒出来这个帖子了,怪就怪在这几个小时我们一直没有讨论过技术哎,我竟然冒出点思路来了,结果刚准备掏钥匙开门的时候,哈哈,我彻底想通了,回来一查.net源码,果然是这样,第一次保存更改了行的状态,导致第二次检查没有行需要保存了。

太怪了,这几个小时来一点没有帖子的事儿,一点没讨论过技术,竟然又会突然冒出思路来,并在2、3分钟就搞明白了。 现在想想,唉,我下午那三个小时不工作,先去吃顿饺子多好,也许就不会憋那么久了,呵呵。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏青青天空树

node.js+vue.js搭建程序设计类课程教学辅助系统

  毕业才刚刚两个多月而已,现在想想大学生活是那么的遥不可及,感觉已经过了好久好久,社会了两个月才明白学校的好啊。。。额,扯远了,自从毕业开始就想找个时间写下毕...

62020
来自专栏申龙斌的程序人生

零基础学编程012:画出复利曲线图

通过学习《零基础学编程011:复利数据表问题》,我们已经可以输出365行的《复利数据表》: (1+0.01) ^ 1 = 1.01 (1+0.01) ^ 2 =...

53880
来自专栏腾讯技术工程官方号的专栏

免费开放阅读 | 数据库管理系统的事务原理(上)

作者介绍: 那海蓝蓝,腾讯技术工程事业群计费平台部金融云TDSQL数据库T4级专家,熟悉PostgreSQL、MySQL、Informix等数据库内核技术,著有...

54580
来自专栏Cloud Native - 产品级敏捷

微服务架构 (五): 获取微服务数据, 生成报表

2016.8.17, 深圳, Ken Fang 架构师在设计从多个微服务取数据, 而生成报表的架构设计方案时, 往往面临著需在边界上下文 (Bounded Co...

233100
来自专栏塔奇克马敲代码

Windows平台下源码分析工具

25630
来自专栏跟着阿笨一起玩NET

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"

 笔者在项目中做做了一个从Excel表格中导入数据的模块、大体上asp.net项目中导入Excel大体分成三类:

82610
来自专栏张善友的专栏

使用OData协议查询Windows日志

OData开放数据协议是微软针对Google的GData推出的,旨在推广Web程序数据库格式标准化的开放数据协议,微软将 OData 定义为基于 HTTP、A...

24690
来自专栏编程微刊

highcharts中的x轴如何显示时分秒时间格式

上一篇文章写道:三分钟上手Highcharts简易甘特图:https://www.jianshu.com/p/d669d451711b,在官方文档里面,x轴默认...

29020
来自专栏Android 开发者

[译] 在 SnackBar,Navigation 和其他事件中使用 LiveData(SingleLiveEvent 案例)

1.1K30
来自专栏向治洪

android开发性能分析

1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项...

28650

扫码关注云+社区

领取腾讯云代金券