四、 在一个ASP.NET页面上使用强类型DataSet
通过创建强类型DataSet,我们可以仅通过编写几行代码就可以实现容易地在一个ASP.NET页面显示这些数据。首先,在你的网站上创建一个ASP.NET页面并且在设计模式中观察它。然后,拖放一个GridView控件到其上,保持其ID为GridView1。打开ASP.NET页面的源代码并且在文件的顶部导入AdventureWorksTableAdapters命名空间(在C#中,该语法为:"using AdventureWorksTableAdapters;")。最后,把下列代码添加到Page_Load事件处理器中:
//创建SalesOrderHeaderTableAdapter SalesOrderHeaderTableAdapter salesAdapter = new SalesOrderHeaderTableAdapter(); //得到发生于2004年7月1日之后的订单 AdventureWorks.SalesOrderHeaderDataTable Orders = salesAdapter.GetDataBy(new DateTime(2004, 7, 1)); //把订单结果绑定到GridView this.GridView1.DataSource = Orders; this.GridView1.DataBind(); |
这段代码是很简单的。我们创建SalesOrderHeaderTableAdapter的一个实例-我们将使用它来填充DataTable。注意,不是声明一个泛型DataTable,我们声明了一个SalesOrderHeaderDataTable类型的对象。为了填充这个DataTable,我们调用GetDateBy()方法并且传递给它一个DateTime对象。还要注意,甚至这个检索命令也是强类型化的,因为我们必须传递一个DateTime对象,而不仅仅是一个泛型对象。下面的屏幕快照显示了上面示例代码的清晰结果。
除了通过代码把结果绑定到GridView外,你还可以使用一个ObjectDataSource,设置它的TypeName属性为AdventureWorksTableAdapters.SalesOrderHeaderTableAdapter,并且把它的SelectMethod设置为GetData或GetDataBy。
五、 使用强类型DataSet插入、更新和删除数据 在本文中,我们已经看到了怎样使用一个强类型DataSet从一个数据库中选择数据。然而,你还可以使用这些工具来插入、更新和删除基本的数据库数据。
除了不必编写代码来存取数据库外,使用这个强类型化的DataSet的另外一个很大的优点是,在此不存在编译器不能检查的字符串列名潜伏在我们的代码并且我们不必进行任何对象转换。如果我们曾经改变过我们的数据库模式,那么一旦我们更新我们的AdventureWorks.xsd文件,我们将注意到在编译期间的存在于我们的应用程序中的所有的巨大变化。
六、 小结 其实,除了使用强类型DataSet外,还有另外的方法来实现你的应用程序的强类型化。你可以创建定制类-比DataSet更为轻量级并且能够正确地响应于你的数据库。而且,还有一些第三方软件开发者提供工具来自动化这一过程。其中,一个特别的产品是LLBLGen Pro,就是我比较喜欢的工具之一,我还写了有关于它的一本书:《Rapid C# Windows Development: Visual Studio 2005, SQL Server 2005,and LLBLGen Pro》。另外一个流行的工具是CodeSmith。甚至微软也在使用一个与之类似的工具-DLINQ,它仍处于测试阶段,至少在下一年中不会上市。
如果你使用Visual Studio强类型DataSet方法,那么你不需要购买任何另外的软件-这是一个明显的优点。所有这些解决方案都有其各自不同的特征和优点,但是强类型化你的关系数据的主要优点还在于:可靠性,更少的错误和更少的调试时间花费;另外,分析数据库模式变化的影响并实现它们也更为容易。最后,非常希望你已经了解到强类型化的优点。祝你幸运!
查看本文来源