将DataSet与数据库中的数据同步的最佳方法是什么?以下是参数:
我们不能简单地重新加载数据,因为它绑定到用户可能已经配置的UI控件(这是一个树网格,他们可能expand/collapse)
H19<。/code>Multiple字段可以更改给定行
我看过DataSet的合并功能,但这似乎没有保留"ID“列的概念。我看过DiffGram功能,但这里的问题是,这些功能似乎是由同一DataSet中的更改而产生的,而不是在某些外部数据源上发生的更改。
我已经从这个解决方案运行了一段时间了,但我知道的方法(非常无效)是构建一个单独的DataSet,然后迭代所有行,逐个字段地将更改应用到绑定它的DataSet。
有没有人有过类似的情况?你做了什么来解决这个问题?即使您还没有遇到类似的问题,任何解决方案的建议都会受到赞赏。
谢谢
发布于 2008-10-01 18:08:35
如果您为每个DataSet.Merge定义了一个主键,那么DataTable就能很好地工作;DataSet会将更改的事件引发到任何数据库GUI控件。
如果您的表很小,您可以定期重新读取所有行并合并,否则限制使用时间戳读取集是个好主意--只需告诉DBA遵循规则并更新时间戳;-)
另一个选项--这有点工作--是使用触发器或存储过程来保持更改的行队列(时间戳、行ID),并将刷新查询从队列中时间戳的基础上删除;如果基表中有很多行,这将更有效,允许您(通过队列记录上的一个内部连接)只提取自上次轮询时间以来更改的行。
发布于 2008-10-01 17:00:20
我认为更容易存储用户扩展的节点列表(假设您可以唯一地标识每个节点),然后重新加载数据并将其重新绑定到树视图,然后展开以前扩展的所有节点。
https://stackoverflow.com/questions/158617
复制相似问题