开始行动 — 创建数据源
本文,我们将构建一个显示 Northwind 数据库中每个定单定购信息的窗体。打开一个新的 Visual Basic WinForms 项目后,首先必须做的事情是向项目中添加一个新数据源(在创建这一示例的过程中,我们将使用 Visual Basic,但所有的操作对于 C# 也适用)。
添加一个数据源:
1.在 Visual Studio 主菜单中,选择 Data 菜单项中的 Show Data Sources,即可显示数据源窗口(在该窗口未显示出来的情况下)。
2.在数据源窗口上,单击 Add New Data Source 工具栏按钮。该操作将启动 Data Source Configuration Wizard,该向导将 DataAdapter Configuration Wizard 的大部分功能和 Visual Studio 2002/2003 中的 DataSet 生成工具结合在一起。
3.如果您的 Visual Studio 版本仍然包含向导的欢迎页面,请选择 Next。然后将显示 Choose a Data Source Type 页面。
4.选择 Database。
5.选择 Next,显示 Choose Your Data Connection 页面。
6.选择 New Connection,显示 Add Connection 对话窗口。
7.输入要连接到 SQL Server(或 MSDE)实例以及 Northwind 数据库所需的信息。
8.选择 OK,关闭对话窗口。
9.注意,现在的连接字符串是保存为一个设置属性,可以通过下列语句访问
My.Settings.NorthwindConnectionString
在 C# 中,该语句为以下形式
VSDataSets.Properties.Settings.Default.NorthwindConnectionString;
10.选择 Next,显示 Choose Your Database Objects 页面。
11.注意,可以选择 TablesViews、Stored、Procedures 或 Functions。
展开 Tables 节点,然后选择 Orders 和 Order Details 表。我们将使用表中的所有列,但您也可以只选择应用程序所需的那些列。
12.选择 Finish,退出向导。
图 1 显示 Order Details 表展开后的数据源窗口,图中显示了该表的所有列。

图 1. 数据源窗口中的 Order Details 表
如果要作出一些改动,重新输入 Data Source Configuration Wizard,可以选择数据源窗口工具栏的 Configure DataSet with Wizard,或者右键单击该窗口中任何元素,从得到的上下文菜单中选择向导。然而,编辑生成的 DataSet 和(多个)TableAdapter 更好的工具是 DataSet Designer。
DataSet 设计器
Visual Studio 2005 包含的 DataSetDesigner 是一个专门为指定和编辑 DataSets 及其相关 TableAdapters 而设计的工具。与 Visual Studio 2002/2003 中的情形比较,它有了明显的改进,因为以前我们必须使用 XML 架构编辑器来定义强类型 DataSets。在这里,DataSet 和 TableAdapter 的定义仍然保存在 .XSD 文件中,如果一定要编辑 XML 架构,也仍然是使用 XML 编辑器。不过,相似之处仅此而已。而且这样做只是为了文件格式方便起见,并不是为了使 DataSetDesigner 支持任意的 XSD 文件。
选择数据源窗口工具栏中的 Edit DataSet with Designer,或者右键单击该窗口中任何元素,从得到的上下文菜单中选择使用设计器进行编辑,将进入 DataSet 设计器。在设计 DataSets 及其 DataTables 的过程中,设计者很可能会觉得该工具与过去设计数据库使用的其他工具十分相似。要为连接的数据库添加表,可以将数据库对象(例如表、视图、存储过程)从 Server Explorer 中拖放到设计器表面,或者在设计器上下文菜单的 Data 主菜单选项中选择 Add TableAdapter,启动 TableAdapter Configuration Wizard。因为 DataSet 还可以包含不与数据库连接而直接加载的表,所以还可以选择菜单中的 Add DataTable 来添加一个单独的表。在编辑器中同样可以添加和/或重命名列。另一个干净利落的特性是,编辑器自动识别数据库中各表之间的关系,在 DataSet 中为您定义各表之间对应的 Relations。
图 2 显示在 DataSet 设计器中,由 Orders 和 Order Details 表组成的数据源。注意,与每个 DataTable 密切相关的是其各自对应的 TableAdapter,用于为表填写数据,或者(可选)用改动后的数据更新数据库。

图 2. 数据源中的 Orders 和 Order Details 表
