Visual Studio 提供以下创建数据集的方法:

也可以用代码动态创建数据集,这种情况下的数据集是非类型化的。(如果已通过从架构生成创建了类型化数据集,也可以用代码动态更改其结构。)

注意 当部署包含 Visual Studio 数据访问组件的应用程序时,必须确保安装该应用程序的用户具有 Microsoft 数据访问组件 (MDAC) 的 2.6 版或更高版本。有关更多信息,请参阅 添加 Microsoft Data Access Components 的启动条件

生成类型化数据集的步骤

当生成类型化数据集时,实际执行一系列不连续的步骤:

  1. 获取 XML 架构(.xsd 文件)。可以用这些方法将架构添加到项目:
  2. 生成数据集类。在这一步,Visual Studio 从 System.Data 命名空间中的基 DataSet 类导出类。然后它用架构中的信息创建强类型成员来表示数据集的数据表和数据列。

    大多数情况下,Visual Studio 在架构添加到项目时自动生成此数据集类。

  3. 创建从第 2 步导出的数据集类的实例以用在窗体或组件上。

在应用程序中使用数据集时,实际上是在使用数据集类的实例(如第 3 步创建的那个实例)。

使用组件设计器

一般情况下,当希望 Visual Studio 为您生成架构和类型化数据集类时,使用组件设计器。在组件设计器中,将一个或多个数据适配器添加到窗体或组件。适配器将数据形状信息发送到数据集(通过其 FillSchema 方法)。数据集于是可以将结果结构写出为项目中的 XML 架构(.xsd 文件)。这时,可以让 Visual Studio 生成将被添加到窗体或组件的类型化数据集类的实例。

组件设计器因此是创建数据集的间接方法——不显式定义数据集中的表和列,而是通过配置数据适配器隐式定义它们。为此可建立供适配器用来与数据源交换数据的 SQL 查询或存储过程。也可以使用适配器的 TableMappings 属性指定数据集中包含哪些列和它们的名称是什么。

配置了数据适配器后,通过它生成数据集。生成数据集后,如果更改数据适配器(例如通过更改表映射),必须重新生成数据集以反映这些更改。

使用组件设计器的缺点是:

使用 XML 设计器

当希望更精确地控制架构的定义或者无法从数据源生成架构时,使用 XML 设计器。可以用 XML 设计器通过两种途径创建架构:

这两种情况下,然后都可以基于创建的架构生成类型化 DataSet 类的实例并在窗体或组件上使用它。

XML 设计器允许添加、移除或修改元素。XML 设计器还允许执行通过组件设计器无法实现的功能(如添加 DataRelation 对象)。

当使用 XML 设计器时,是在编辑 .xsd 文件。项目通常也会包含基于 .xsd 文件的类型化数据集类文件。如果保存 .xsd 文件中的更改,则将重新生成相应的类文件以反映已更新的架构。通过在您修改 .xsd 文件时不断地重新生成类文件,Visual Studio 可以使 .xsd 文件和相应的类文件保持同步。可以关闭此功能,例如在编辑不需要类文件的架构文件时。

使用 XML 设计器的缺点是: