配置数据连接和数据适配器
若要开始,请创建一个包含稍后用于填充数据集的 SQL 语句的数据适配器。作为此过程的一部分,定义连接以访问数据库。使用向导配置数据适配器,该向导使创建数据访问所需的 SQL 语句变得容易。 注意 向导完成后,您必须继续下一部分操作,以便生成数据集并完成窗体的数据访问部分。
创建数据连接和数据适配器 从“工具箱”的“数据”选项卡中,将 OleDbDataAdapter 对象拖到窗体上。 
注意 您还可以使用 SqlDataAdapter,它为用于 SQL Server 7.0 或更高版本进行了优化。在本演练中使用 OleDbDataAdapter,因为它更通用,可以提供对任何与 OLE DB 兼容的数据源的 ADO.NET 访问。
“数据适配器配置向导”启动,它将帮助您创建连接和适配器。 在该向导中,执行下列操作: 
在第二个窗格中,创建或选择一个指向 SQL Server Pubs 数据库的连接。 
在第三个窗格中,指定您要使用 SQL 语句来访问数据库。 
在第四个窗格中创建以下 SQL 语句: 
SELECT au_id, au_lname, au_fname, city, state, phone, contract
FROM authors
为了便于生成 SQL 语句,请单击“查询生成器”以启动“查询生成器”。 注意 在本演练中,将用 authors 表中的所有行填充该数据集。在生产应用程序中,通常通过创建只返回所需列和行的查询来优化数据访问。有关示例,请参阅演练:使用参数化查询在 Windows 窗体中显示数据。
向导创建一个连接 (OleDbConnection1),它包含有关如何访问数据库的信息。您还将具有包含一个查询的数据适配器 (OleDbDataAdapter1),该查询定义您要访问的数据库中的表和列。 向导完成后,基于在该过程中创建的 SQL 查询生成数据集。有关更多信息,请参阅下一节。 
创建数据集
建立连接到数据库的方法并指定所需的信息(通过数据适配器中的 SQL 命令)后,可以让 Visual Studio 创建数据集。Visual Studio 可以基于您为数据适配器指定的查询自动生成数据集。数据集是基于相应 XML 架构(.xsd 文件)的 DataSet 类的实例,该架构描述类的元素(表、列和约束)。有关数据集与架构之间关系的更多信息,请参阅 ADO.NET 数据访问介绍。生成数据集 从“数据”菜单中选择“生成数据集”。 
提示 如果看不到“数据”菜单,请在窗体中单击;该窗体必须具有焦点,该菜单才会出现。
显示“生成数据集”对话框。 选择“新建”选项,将数据集命名为 dsAuthors。 
在“选择要添加到数据集中的表”下面的列表中,应选择“authors”表。 确保“将此数据集添加到设计器”已选中,然后单击“确定”。 
Visual Studio 生成某类型化数据集类 (dsAuthors) 和定义该数据集的架构。您将在“解决方案资源管理器”中看到新架构 (dsAuthors.xsd)。 提示 在“解决方案资源管理器”中,单击“显示所有文件”以查看架构文件的相关 .vb 或 .cs 文件,该文件包含定义新数据集类的代码。
最后,Visual Studio 将新数据集类的一个实例 (dsAuthors1) 添加到窗体中。 此时,已完成为从数据库中获取信息并将信息转移到数据集所需的全部设置。准备创建一个显示数据的窗体。添加显示数据的 DataGrid 控件
在本演练中,您将添加一个控件(即 DataGrid 控件),它可以同时显示数据集内的所有记录。另一个方法是使用文本框等单个控件一次显示一个记录。该策略随后会要求您向窗体添加导航功能。因此,为了简便起见,应将使用数据网格。注意 有关如何使用单个文本框显示数据集的记录的示例,请参阅演练:使用参数化查询在 Windows 窗体中显示数据。
数据网格必须绑定到数据集才能显示数据。 向窗体添加绑定 DataGrid 控件 如果尚未这样做,请单击当前窗口顶部的选项卡以切换到窗体设计器。 
从“工具箱”的“Windows 窗体”选项卡中,将 DataGrid 控件拖到窗体上。 
按 F4 键以显示“属性”窗口。 
在 DataSource 属性中,选择“DsAuthors1”作为数据源。(请勿选择“DsAuthors1.Authors”。) 
在 DataMember 属性中选择“authors”。 
设置这两个属性会将 DsAuthors1 数据集内的 authors 数据表绑定到网格。 调整网格的大小,以便可以看到所有列。更改其高度,以便能够看到多个作者记录。 
填充 DataGrid 控件
尽管数据网格被绑定到所创建的数据集,但是,数据集本身不会被自动填写。相反,您必须自己调用数据适配器方法来填充数据集。有关填充数据集的更多信息,请参阅数据集介绍。填充 DataGrid 控件 从“工具箱”的“Windows 窗体”选项卡中,将 Button 控件拖到窗体上。 
将该按钮命名为 btnLoad,通过设置其 Text 属性将标题更改为 Load。 
双击该按钮以创建其 Click 事件的事件处理方法。 
在该方法中,清除所创建的数据集,然后调用数据适配器的 Fill 方法,向该方法传递要填充的数据集。 
下面的示例显示完整的方法: 
// C#
private void btnLoad_Click(object sender, System.EventArgs e)
{
   dsAuthors1.Clear();
   oleDbDataAdapter1.Fill(dsAuthors1);
}更新数据库 从“工具箱”的“Windows 窗体”选项卡中,将 Button 控件拖到窗体上。 
将该按钮命名为 btnUpdate,通过设置其 Text 属性将标题更改为 Save Changes in Database(在数据库中保存更改)。 
双击该按钮以创建其 Click 事件的事件处理方法。 
在该方法中调用数据适配器的 Update 方法,向该方法传递数据集,该数据集包含要发送到数据库中的更新。使用“消息框”(MessageBox) 对象显示确认文本。 
下面的示例显示完整的方法: 
// C#
private void btnUpdate_Click(object sender, System.EventArgs e)
{
   oleDbDataAdapter1.Update(dsAuthors1);
   MessageBox.Show("Database updated!");
}