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

  • 相关阅读:
    C# 字符串相似度算法
    在C# 中枚举COM对象的方法和属性名称
    question:读取以TAB为分隔符CSV文件时遇到的问题
    WCF文件传输
    C#读写XML的演示程序(1)
    C#解析HTML 的两种方法
    在C#中使用MSHTML的高级支持接口
    XML读写演示程序(2)
    聊天程序WMChat开发文档
    数据表之间的链接
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1459400.html
Copyright © 2011-2022 走看看