第七篇高级应用
第七篇高级应用
第一章XML及其应用
XML是标准扩展语言的简称,是未来Web编程的标准.在这一章中,我们将讲述XML在ASP.NET中的应用7.1.1制作广告条在这个程序中,我们通过XML语言实现每次访问网页时,将显示不同的广告条.在本例中,我们只调用了两条广告源文件:advanceapp\intro.aspxIntro.aspx的代码如下:
广告条演示
intro.xml的代码如下:./hp1.gifhttp://www.yesky.com欢迎访问!Computers80
BorderWidth=1
第七篇高级应用
./hp2.gifhttp://www.yesky.com欢迎访问Computers80在intro.aspx中,我们使用了这条语句来嵌入intro.xml文件.运行效果如图:
当我们点刷新按狃或者按F5键,我们将看到另一条广告条.
在本例中,我们用到了AdRotator服务器控件,在xml文件中,我们我们可以定义其属性:如表所示:
第七篇高级应用
属性ImageUrlNavigateUrlAlternateTextKeywordImpressions
描述图象文件的绝对或相对地址当图象被点击时,可访问相应的网页当鼠标移动到图片上时,将显示提示信息指定广告条的分类,我们可以利用此属性来对广告条进行分类指定图片在表格中的大小
7.1.2XML和dataset控件结合使用数据访问是一个应用系统的核心.公用语言运行环境(CommonLanguageRuntime)提供了管理数据访问应用程序接口(API)的方法.而这些API将不论它的的数据源是什么,如SQLServer,OLEDB,XML等,都能提取出我们所需要的数据.我们在具体编程的时候,有3个对象将常常用到:Connections,Commands,andDataSets.对象Connection描述与数据源进行连接.SQLServer或者一个如XML文件.对数据进行操纵.如进行删除(delete),提取(select),更新(update)显示出所需的数据
Command
Dataset
为了使我们能使用SQL语句,我们要先导入System.Data和System.Data.SQL这两个名字空间.语句如下:<%@ImportNamespace="System.Data"%><%@ImportNamespace="System.Data.SQL"%>下面的表格是对几个典型的SQL语句的说明:SQL语句Select(对单个表的操作)Select(对多个表的操作)InsertDeleteUpdate示例SELECT*fromStudentWHEREstuname='小李';SELECT*fromStudentS,DeptDWHERES.dept=D.dept;INSERTintoStudentVALUES('小王',21,'男');DELETEfromStudentWHEREname='小王';UPDATEStudentSETage=21WHEREname='小李';
第七篇高级应用
在执行查询之前,我们要先构件一个SQLDataSetCommand对象,在执行查询以后,我们需要把数据转移到DataSet中,我们可以使用下面的代码:我们假设有一个test数据库,在这个数据库中有一个student表.DimmyConnectionAsNewSQLConnection("server=localhost;uid=sa;pwd=;database=test")DimmyCommandAsNewSQLDataSetCommand("select*fromstudent",myConnection)DimdsAsNewDataSet()myCommand.FillDataSet(ds,"student")可能读者不禁要问:为什么要用XML文件存储数据吗?为什么不使用数据库?这是因为:对很多目的用途来说,用数据库太过浪费了..要使用一个数据库,你必须安装和支持一个分离的服务器处理进程(aseparateserverprocess),它常要求有安装和支持它的管理员(administrator).你必须学习SQL语句,并用SQL语句写查询,然后转换数据,再返回.而如果你用XML文件存储数据,将可减少额外的服务器的负荷.还有,你还找到了一个编辑数据的简单方法.你只要使用文本编辑器,而不必使用复杂的数据库工具.XML文件很容易备份,和朋友共享,或下载到你的客户端.同样的,你可以方便地通过ftp上载新的数据到你的站点.XML还有一个更抽象的优点,即作为层次型的格式比关系型的更好.它可以用一种很直接的方式来设计数据结构来符合你的需要.你不需要使用一个实体-关系编辑器,也不需要使你的图表(schema)标准化.如果你有一个元素(element)包含了另一个元素,你可以直接在格式中表示它,而不需要使用表的关联.注意,在很多应用中,依靠文件系统是不够充分的.如果更新很多,文件系统会因为同时写入而受到破坏.数据库则通常支持事务处理,可以应付所发生的请求而不至于损坏.对于复杂的查询统计要有反复,及时的更新,此时数据库表现都很优秀.当然,关系型数据库还有很多优点,包括丰富的查询语言,图表化工具,可伸缩性,存取控制等等.在下面这样的案例中,正如大多数中小规模的,基于发布信息的站点一样,你可能涉及的大多数数据存取都是读,而不是写,数据虽然可能很大,但相对来说并没有经常的更新变化,你也不需要做很复杂的查询,即使你需要做,也将用一个独立的查询工具,那么成熟的rdbms的优点消失了,而面向对象型的数据模型的优点则可以得到体现.最后,为你的数据库提供一个查询器外壳来进行SQL查询并将他们转化进入xmlstream也是完全有可能的.所以你可以选择这二种方式之一.XML正变成一种非常健壮的,便于编程的工具,作为某个成熟的数据库的前端工具来进行存储和查询.(oracle的xsqlservlet即是这种技术的一个很好的例子.)7.1.3XML语法现在我们来介绍一下XMLSchemas:随着XMLSchema规范的逐渐普及,它成为W3C推荐标准的那一天已经不远了.我们来看一下这个新的定义文档类型的方法.一,定义元素文档类型定义的工作现在大都是由DTDs来完成的,现在的DTD在功能上有一些限制,随着XML应用的越来越广泛,这些限制逐渐阻碍了XML的发展.
第七篇高级应用
DTD的语法不同于XML的语法,因而需要文档编写者另外的学习一套符号语言.而软件也需要另外的一个解析器来对DTD文件进行解析.在DTD中没有办法来定义能够从程序语言变量直接映射到XML数据的数据类型和数据格式.没有一组被人所熟知的基本的元素以供文档编写者选择.DTDs是XML从其前辈SGML那儿继承过来的(事实上,XML本身就是一种SGML的简化版本),这个相对比较成熟的技术能够很快的让XML运行起来,并且能够让熟悉SGML的人对XML有更多的感觉.然而,很快的人们就发现,XML需要一种更具表达能力的解决方案,而不仅仅是DTD.定义元素需要指定元素的名称,元素的内容模式,元素的属性,以及内嵌的子元素.在XMLSchemas中,元素的内容模式是通过类型来定义的.一个服从于某个特定的schema的XML文档只能按照schema中定义的元素模式来编写,这同DTD的规则是一样的.元素可以是简单类型的,也可以使复杂类型的.在Schemas规范中定义了很多的简单类型,例如:string,integer和decimal.简单类型的元素不能在包含子元素和属性,而复杂类型的元素则能够嵌套子元素,并能够包含有属性.我们来看看一个简单的定义元素的例子:我们知道在面向对象的观点中,有聚集和继承的概念,可以在已有的类中衍生出新类.在这儿Schema借用了这些观点,用户也可以通过聚集和继承来在老元素的基础上定义新的元素.聚集能够把一组已存在的元素组合成一个新的元素.继承则通过扩展已存在的元素来定义一个新的元素,并且这个新的元素能够代表被继承的那个元素.比如,如果我们要从decimal类型中派生一个新的value元素,并让它有这样的内容模式:42,我们可以这样的定义:下面我们把time
上一篇:第5章Web窗体的基本控件(ASPnet35开发大全共29章)
下一篇:国际市场营销分析的留学论文