问题是这样的,数据库里的数据在实时的更新,要么是数据变化了,要么是添加了几条数据等等,现在我把数据库里的数据填充到DataSet里了,并对这些数据进行了相关的查询操作,那么问题来了,老板要求通过一个定时器控件,每隔5分钟刷新一次数据集里的数据。由于数据量相对较大,难道还是用原来的填充方法重新填充?有没有什么方法,只更新变化了的部分或是新增加的部分,这样无论是性能还是速度,应该会好一点吧
1、用 SqlDependency;
2、给表增加一列 RowVersion,每隔 5 分钟使用 DataSet 中最大的 RowVersion 去服务器查询一次。
1、数据量比较大,所以你能够全部放在Dataset里面,你的数据量有多大?你的内存有多大?
2、数据会有3种变化。
a. 新增
b. 编辑
c. 删除
前面两种变化都可以通过时间字段(更新时间)来进行检测,后面一种就不太好办。
当然也有相应的解决方案。
但是最大的问题还是把数据全部放在Dataset里面,也许现在内存比较便宜了吧。
为什么要放dataset,直接对数据库查询操作不行吗?
定义两个DataSet, 和一个布尔类型变量,窗体加载时给2个DataSet都赋值,默认访问DataSet1;
每隔2分钟,从数据库中取出数据,
给DataSet1 赋值的时候,让程序访问DataSet2;
给DataSet2 赋值的时候,让程序访问DataSet1;