Welcome

首页 / 软件开发 / .NET编程技术 / 数据点: 具有ADO.NET和自定义对象的数据绑定应用程序

数据点: 具有ADO.NET和自定义对象的数据绑定应用程序2011-10-30 msdn John PapaWindows Forms 绑定控件显著改进了过去的数据绑定控件。它们可使您快速处理与设置窗体有关的冗 余任务,您也可以对其行为进行广泛地自定义和扩展。数据可在各种容器中传输,包括 DataSet 和自定 义类实体,Windows® Forms 绑定工具使您能够绑定到所有这些类型的对象。如果不想使用 DataSet ,可以创建自定义实体以用作您的应用程序的数据存储,并可以使用 List<T> 和其他集合类型来 存储自定义实体集。可使用 BindingSource 和 BindingNavigator 轻松地绑定这些类型的自定义实体。 在本专栏中,我将说明如何使用 Microsoft® .NET Framework 2.0 中的现有绑定工具绑定业务实体 的自定义列表,我也将为此而编写一个功能完善的数据驱动 Windows Forms 应用程序。

首先介绍此应用程序,特别是它的 DataGridView、BindingSource 和 BindingNavigator 绑定控件的 使用。然后介绍较低的层次并演示它们的体系结构以及如何对数据进行检索、保留、访问和发回数据库。 示例应用程序的所有代码都包括在本期的下载文件中。

测试驱动应用程序

此应用程序将允 许用户查看、添加、删除、更新、查找和导航记录。它会将 Northwind 订单数据加载到 DataGridView, 如图 1 所示。选择订单后,窗体右侧的 TextBox、ComboBox 和其他控件会填充所选订单的信息。所有控 件都可通过 BindingSource 控件绑定到同一个数据源。

图 1在 DataGridView 中查看 Northwind 订单

在图 1 中,BindingNavigator 控件是一个跨窗体顶部显 示的工具栏。它包含标准的导航按钮,用于更改屏幕将显示的订单记录。导航按钮应与左侧的网格结合使 用,该网格可使这些按钮与当前记录保持同步。工具栏还包含一些用于执行添加、删除和更新订单信息的 事件处理程序的按钮。最后,应用程序允许您搜索特定订单(注意望远镜图标)。

可使用 ComboBox 控件显示代表外键引用的订单记录的字段。例如,ComboBox 可用来显示销售人员(即雇员)的 名单。特定订单的销售人员将在 ComboBox 中进行选择。这一方法比显示“雇员 ID”要更好 一些,因为后者很可能对应用程序的用户没有什么意义。在图 1 中,请注意,ComboBox 中显示的是雇员 名称,而不是雇员 ID。ComboBox 中还将显示客户名称。

实现自定义实体和接口

虽然 DataSet 是数据访问库中一个功能强大的工具,但在应用程序中使用自定义类管理和表示该数据模型也是 很有效的。有关这两种方法的优缺点的讨论非常多,DataSet 或自定义类两大阵营各自都有大批的坚守者 。事实上,在企业体系结构中这两种方法都是可行的。另外,ADO.NET 工具可与 DataSet 和自定义类配 合使用来创建表示数据对象的实体。关键在于您必须具有某种数据存储才能包含您的数据。在本应用程序 中,我将使用自定义实体。

此示例应用程序包含两个项目:一个用于表示数据,另一个用于业务 逻辑和数据访问。在较低层创建自定义实体时,您必须为该实体创建属性。例如,Customer 类具有 CustomerID 属性和 CompanyName 属性。图 2 显示表示 CustomerID 和 CompanyName 的私有字段和公共 属性。尽管键入此代码会让人有些乏味,尤其与使用 DataSet 相比更是如此,但使用一些可即时生成属 性的重构工具甚至代码生成工具来生成整个类,可使类的创建非常简单。