对ADO 2.6进行使用时,一些结构复杂一点的组件在数据绑定时操作步骤相近,而另外一些结构简单一点的组件在数据绑定时也比较类似。以下就结合TextBox组件和DataGrid组件分别探讨DataSet在实现简单型数据绑定和复杂性数据绑定作用和具体实现方法。
我们介绍了从ADO 记录集得到XML格式数据的几种办法,也得到了最简化的字符串。但是有几个问题你仍然需要注意,ADO 2.6有些字段值还有XML里不支持的字符,比如:"'<>&,象P&G宝洁公司的名称,Chef Anton's Gumbo Mix产品名字等,在做转换时要进行编码处理。
当保存分级的记录集( data shapes)有两个限制:不能保存参数化和含有未解决的更新的记录集。为了更进一步提高性能,你可以把转换工作放到COM/COM+组件中, ASP代码只进行数据的最终表现即可。把业务层、数据层和表现层分开,ASP只需要调用数据组件,ADO 2.6数据组件调用数据库的存储过程,把结果转换成XML,***只把简单的XML字符环串回到ASP程序里,ASP就可以用XSLT把XML进行转换,把结果送到浏览器。
ADO自动产生的XML包含了schema信息,它描述这个ADO 2.6里允许有什么节点和属性以及采用何种数据类型,而且数据节点也增加了名称空间。schema信息在需要数据验证的地方或进行更复杂的处理或许很有用,但是,大多数情况下,我们使用的是瘦客户机,我们不需要schema信息。我们可以利用XSLT来分离出我们想要的信息,去掉多余的信息。因此,我们编写下面的“ DataCleaner.xsl”:
- SqlCommandBuilder sqlCommandBuilder1 = new SqlCommandBuilder ( sqlDataAdapter1 ) ;
- //以sqlDataAdapter1为参数来初始化SqlCommandBuilder实例
- dsDataSet1.Tables["Customers"].Rows[0].Delete ( ) ;
- //删除DataSet中删除数据表Customers中***行数据
- sqlDataAdapter1.Update ( dsDataSet1 ,"Customers" ) ;
- //调用Update方法,以DataSet中的数据更新从数据库
- dsDataSet1.Tables["Customers"].AcceptChanges ( ) ;
数据绑定是数据绑定是绑定技术中使用最频繁,也是最为重要的技术,也可以说是各种.Net开发语言开发数据库应用程序最需要掌握的基本的知识之一。数据绑定之所以很重要,是因为在.Net FrameWork SDK中并没有提供数据库开发的相关组件,即如:DbTextBox、DbLabel等用于数据库开发的常用组件在.Net FrameWork SDK中都没有。而数据绑定技术则能够把TextBox组件"改造"成DbTextBox组件,ADO 2.6把Label组件"改造"成DbLabel组件等等。在组于是也就产生了二个类别。所有这些都与DataSet有直接关系。
数据绑定分成二类:简单型数据绑定和复杂型数据绑定。适用于简单型数据绑定组件一般有Lable、TextBox等,适用于复杂性数据绑定的组件一般有DataGrid、ListBox、ComboBox等。ADO 2.6其实简单型数据绑定和复杂性数据绑定并没有明确的区分。#t#
简单型数据绑定:
简单型数据绑定一般使用这些组件中的DataBindings属性的Add方法把DataSet中某一个DataTable中的某一行和组件的某个属性绑定起来,从而达到显示数据的效果。TextBox组件的数据绑定具体实现方法是在代码清单01后,再添加代码清单03中ADO 2.6的代码,代码清单03中的代码是把DataSet中的Customers 数据表中的"CustomerID"的数据和TextBox的Text属性绑定起来,这样ADO 2.6就产生了。其他适用于简单型数据绑定组件数据绑定的方法类似与此操作: