zoukankan      html  css  js  c++  java
  • VS2008中的TableAdapterManager和分层更新机制

    本文部分转载自:http://msdn.microsoft.com/zh-cn/library/bb384426.aspx

    TableAdapterManager 是 Visual Studio 2008 中的一个新组件,它以现有数据功能(类型化数据集和 TableAdapter)为基础,并提供在相关数据表中保存数据的功能。TableAdapterManager 使用将数据表关联起来的外键关系来确定将 Insert、Update 和 Delete 从数据集发送到数据库的正确顺序,而不违反数据库中的外键约束(引用完整性)。

    “外键约束”是数据库中的一致性规则,用于控制与 Insert、Update 和 Delete 相关的记录的行为。外键约束能够防止当其他表中仍然存在相关子记录时父记录被删除。

    使用 TableAdapterManager 在相关数据表中保存数据的整个过程称为分层更新

    保存相关数据表中修改过的数据比保存单个表中的数据要复杂。这是因为必须以特定的顺序执行每个相关表的 Insert、Update 和 Delete 命令,以避免违反数据库中定义的外键约束。例如,假设有一个订单录入应用程序,您可以使用该程序管理新的和现有的客户和订单。如果您需要删除一条现有客户记录,必须首先删除该客户的所有订单。如果要添加新的客户记录(带订单),必须首先插入新的客户记录,然后再插入该客户的订单,这是表中外键约束的要求。正如这些示例所示,您需要提取数据的特定子集,并以正确的顺序发送更新(Insert、Update 和 Delete)以维护引用完整性,避免违反数据库中的外键约束。

     

    以下我总结需要注意的一个问题:

    在分层更新之后,一个强类型的数据集可以被拆分为两个项目,一个是指实体类,一个是指TableAdapter类型。两个项目一般都是类库项目,那么有一个问题就是如何动态地更改TableAdapter的连接字符串

     

    DAL.NorthwindTableAdapters.TableAdapterManager manager = new DAL.NorthwindTableAdapters.TableAdapterManager();//先创建TableAdapterManager的实例
    manager.CustomersTableAdapter = new DAL.NorthwindTableAdapters.CustomersTableAdapter();
    //创建里面的某个Adapter实例
    manager.Connection.ConnectionString="server=(local);database=northwind;integrated security=true";//动态修改连接
    dataGridView1.DataSource = manager.CustomersTableAdapter.GetData();

     

    image

    image

  • 相关阅读:
    常见HTTP状态码(200、301、302、500等)解说
    HTTP协议详解(真的很经典)
    计算机网络基础知识总结
    js调试中打印语句
    关于函数return的一些理解与小实例
    网站的导航菜单 远择一个栏目跳转后,为导航菜单的这个栏目增加选中的样式的思路
    alias记录
    利用vue-cli配合vue-router搭建一个完整的spa流程
    node+vue-cli+webpack搭建教程
    nodejs参考文章
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1459400.html
Copyright © 2011-2022 走看看