- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Visual Studio 2008的分层更新
1.分层更新概述
“分层更新”是指在维护引用完整性的情况下,将具有两个或多个相关表的数据集中的已更新数据保存回数据库。“引用完整性”是指数据库中的外键约束所提供的一致性规则,这些外键约束可对插入、更新和删除相关记录的行为进行控制。例如,引用完整性可强制要求您在为客户创建订单之前创建客户记录。
开发人员在Visual Studio 2005及其早期版本中创建数据应用程序时,自动生成的代码只会将已更改的数据保存到第一个从“数据源”窗口拖动的表中。当从“数据源”窗口拖动其他表时,用户必须手动添加代码,以将这些表中的更改保存到数据库中。不仅需要用户添加代码以对每个表调用TableAdapter.Update方法,同时还需要合并逻辑从而以适当的顺序对每个表执行特定Insert、Update和Delete,以此来防止违反引用完整性。(例如,必须先保存新的客户,然后才能添加他们的订单;必须先删除现有客户的订单,然后才能删除现有客户。)
在Visual Studio 2008中,新的TableAdapterManager组件增强了类型化数据集的性能。TableAdapterManager可将保存多个相关表中的数据所需的代码从在具有多行代码的多个例程减少为单个方法调用:TableAdapterManager.UpdateAll(TypedDataset)。TableAdapterManager可提供在数据集和数据库之间执行更新(保存)操作时,维护引用完整性所需的所有基础逻辑。
启用数据集中的分层更新
默认情况下,所有在项目中添加或创建的新数据集的分层更新都处于启用状态。可通过在 HYPERLINK /zh-cn/library/314t4see.aspx 数据集设计器中,将类型化数据集的“分层更新”属性设置为“True”或“False”来启用或禁用分层更新
外键约束和级联更新、删除
理解数据库中的外键约束和级联行为是如何在已生成的数据集代码中生成的是很重要的。
默认情况下,所生成的数据集中的数据表具有与数据库中的关系相匹配的关系(DataRelation)。但数据集中的关系不生成为外键约束。实际上,DataRelation配置为“仅关系”,不具有UpdateRule或DeleteRule。
默认情况下,即使对数据库关系进行设置,开启级联更新和/或级联删除,级联更新和级联删除也将处于关闭状态。例如,创建一个新的客户和一个新的订单,然后尝试保存与数据库中定义的外键约束相冲突的数据。
设置更新的执行顺序
设置更新的执行顺序就是设置保存数据集中的所有表中的所有已更改数据所需的单个Insert、Update和Delete的顺序。启用分层更新后,将依次执行Insert、Update和Delete。TableAdapterManage提供了一个UpdateOrder属性,可对该属性进行设置,从而首先执行Update,然后执行Insert,最后执行Delete
在执行分层更新之前,创建数据集的备份副本
保存数据(通过调用TableAdapterManager.UpdateAll()方法)时,TableAdapterManager 会试图在单个事务中更新所有表的数据。只要有表的某一更新环节失败,则将回滚整个事务。在大部分情况下,回滚事务会将您的应用程序返回到其原始状态。但有时,您可能会希望从备份副本还原数据集。一个例子就是当您使用自动递增值时。例如,如果保存操作失败,则数据集中将不会重置自动递增值,同时数据集仍将会继续创建自动递增值,这会使自动计数产生缺口,您的应用程序可能不会接受。如果发生这种情况,TableAdapterManager提供的BackupDataSetBeforeUpdate属性可在事务失败时,将现有数据集替换为备份副本。
2.TableAdapterManager概述
TableAdapterManager是Visual Studio 2008中的一个新组件,它以现有数据功能(类型化数据集和TableAdapter)为基础,并提供在相关数据表中保存数据的功能。TableAdapterManager使用将数据表关联起来的外键关系来确定将Insert、Update和Delete从数据集发送到数据库的正确顺序,而不违反数据库中的外键约束(引用完整性)。
“外键约束”是数据库中的一致性规则,用于控制与Insert、Update和Delete相关的记录的行为。外键约束能够防止当其他表中仍然存在相关子记录时父记录被删除。
使用TableAdapterManager在相关数据表中保存数据的整个过程称为 HYPERLINK /zh-cn/library/bb384468.aspx 分层更新。
保存相关数据表
文档评论(0)