ADO.NET 提供的手段是连接到数据库,并且以表呈现它的可以绑定到 data-aware 控件的数据。 本主题提供关于如何在 ADO.NET 中把 data-aware 控件 (XtraGrid、XtraPivotGrid、XtraTreeList 等) 绑定到数据库的信息。
ADO.NET 中的数据绑定机制
要将 data-aware 控件应用于数据库数据,必须创建三个对象。 首先需要一个连接对象来指定数据库位置和访问方法。 其次,必须创建一个数据适配器对象。 数据适配器在物理数据和数据集之间起桥接作用。 它们使用连接对象来访问数据库。 当数据适配器对象被创建和配置之后, 可以生成一个 DataSet 对象 —— 最后需要创建的对象。 这个对象把数据实际应用于 data-aware 控件。
要把控件绑定到数据库,你需要使用下列方法之一:
- 将一个来源于 DataSet 的表指派到控件的 DataSource 属性;
- 将 DataSet 指派到 DataSource 属性,并且使用 DataMember 属性提供所需要的表名;
- 使用绑定到 DataSet 的某个表的 DataView 对象来初始设置 DataSource 属性。
- 在 Visual Studio 2005 中,可以使用 BindingSource 组件来把控件绑定到数据库,或者任何在代码中声明的类。 关于该组件的更多信息,请参阅 MSDN 中的 BindingSource 组件 [Windows 窗体] 主题。
下面的插图举例说明了上面所述的绑定机制。
.NET 数据提供程序提供了对两种数据类型的访问。 这样,就有不同的连接和数据适配器对象。 OleDBConnection 和 OleDBDataAdapter 对象连接 OLE DB 公开的数据。 SqlConnection 和 SqlDataAdapter 对象用于访问 Microsoft(R) SQL Server version 7.0 或更高版本提供的数据源。
除非数据适配器装载了控件绑定的数据集,否则控件不显示数据。 要这样做,你需要调用数据适配器的 Fill 方法,并传递 DataSet 对象作为一个参数。 通常会在窗体的 Load 事件中执行。
当你修改了显示在控件中的数据,所作的修改会被应用于绑定的数据集中,但不会保存到数据库。 要把所作的修改保存到数据库,你需要调用数据适配器的 Update 方法,把数据集作为一个参数进行传递。 更多关于访问数据和更新数据源的内容,请参阅 OleDBDataAdapter 和 SqlDataAdapter 类的说明。