收藏 分享(赏)

XML系列教程之一:XML教程.pdf

上传人:认真的雪 文档编号:973938 上传时间:2019-10-20 格式:PDF 页数:55 大小:845.12KB
下载 相关 举报
XML系列教程之一:XML教程.pdf_第1页
第1页 / 共55页
XML系列教程之一:XML教程.pdf_第2页
第2页 / 共55页
XML系列教程之一:XML教程.pdf_第3页
第3页 / 共55页
XML系列教程之一:XML教程.pdf_第4页
第4页 / 共55页
XML系列教程之一:XML教程.pdf_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、 第 8 章 Web 窗体的数据控件 在了解了 ADO.NET 基础后,就可以使用 ADO.NET 提供的对象进行数据库开发和操作。 ASP.NET还提供了一些 Web 窗体的数据控件, 开发人员 能够智能的配置与数据库的连接,而不需要手动的编写数据库连接。 ASP.NET 不仅提供了数据源 控件,还提供了能够显示数据的控件,简化了数据显示 的开发,开发人员只需要简单的修改 模板就能够实现数据显示 和分页 。 8.1 数据源控件 数据源控件很像 ADO.NET 中的 Connection 对象,数据源控件用来配置数据源,当数据控件绑定数据源控件时,就 能够通过数据库源控件来获取数据源中的数据并

2、显示 。而无需通过程序实现数据源代码的编写。 8.1.1 SQL 数据源控件 ( SqlDataSource) SqlDataSource 控件代表一个通过 ADO.NET 连接到 SQL 数据库提供者的数据源控件。并且SqlDataSource 能够与任何一种 ADO.NET 支持的数据库进行交互,这些数据库包括 SQL Server、ACCESS、 Oledb、 Odbc 以及 Oracle。 SqlDataSource 控件能够支持 数据的 检索 、 插入 、 更新 、 删除 、 排序等,以至于数据绑定控件可以在这些能力被允许的条件下自动的完成该功能,而不需要手动的代码实现。并且 Sql

3、DataSource 控件所属的页面被打开时, SqlDataSource 控件能够自动的打开数据库,执行 SQL 语句或存储过程,返回选定的数据,然后关闭连接。 SqlDataSource 控件强大的功能极大的简化了开发人员的开发,缩减了开发中的代码。但是 SqlDataSource 控件也有一些缺点,就是在性能上不太适应大型的开发,而对于中小型的开发,SqlDataSource 控件已经足够了。 1 建立 SqlDataSource 控件 ASP.NET 提供的 SqlDataSource 控件能够方便的添加到页面,当 SqlDataSource 控件被添加到ASP.NET 页面中时,会生

4、成 ASP.NET 标签, 示例 代码如下所示。 切换到视图模式下,点击 SqlDataSource 控件 会显式 【 配置数据源 】 ,单击 【 配置数据源 】连接 时, 系统 能够智能的提供 SqlDataSource 控件配置向导,如图 8-1 所 示。 在新建数据源后,开发人员可以选择是否保存在 web.config 数据源中以便应用程序进行全局配置,通常情况下选择保存。由于现在没有连接,单击【新建连接】按钮选择或创建一个数据源。单击后,系统会弹出对话框用于选择数据库文件类型,如图 8-2 所示。 212 图 8-1 配置 SqlDataSource 控件 图 8-2 选择数据源 当选

5、择完后,配置信息就会显式在 web.config 中。 当需要对用户控件进行维护时,可以直接修改web.config,而不需要修改每个页面的数 据源控件, 这样就方便了开发和维护。当选择了数据源后,需要对数据源的连接进行配置,这一步与 ADO.NET 中的 Connection 对象一样,就是要与数据库建立连接,当配置好连接后,可以单击【测试连接】按钮 来测试是否连接 成功,如图 8-3 和图 8-4 所示。 图 8-3 添加连接 图 8-4 测试连接 连接成功后, 单击 【 确定 】按钮, 系统会自动添加连接,如图 8-5 所示。连接添加成功后,在 web.config配置文件中,就有该连接

6、的连接字串 ,代码如下所示。 数据源控件 可以指定 开发人员 所需要 使用 的 Select 语句或存储过程, 开发人员能够在配置 Select 语句窗口中进行 Select 语句的配置和生成,如果开发人员希望手动编写 Select 语句或 其他 语句,可以单击【 指定自定义 SQL 语句或存储过程】按钮进行自定义配置 , Select 语句的配置和生成 如图 8-6 所示。 213 图 8-5 成功添加连接 图 8-6 配置使用 Select 语句 对于开发人员,只需要勾选相应的字段, 选择 Where 条件和 Order By 语句 就可以配置一个 Select语句。但是,通过选择只能够查

7、询一个表,并实现简单的查询语。 如果要实现复杂的 SQL 查询语句,可以单击【 指定自定义 SQL 语句或存储过程】进行自定义 SQL 语句或存储过程的配置 ,如图 8-7 所示 ,开发人员 选择了一个 getdetail 的存储过程 作为数据源 。 单击【下一步】按钮,就需要对相应的字段进行配置,这些字段就像 ADO.NET 中的参数化查询一样。在数据源控件中,也是通过 来表示参数化变量,当需要配置相应的字段,例如配置 WHERE 语句等就 需要对参数进行配置,如图 8-8 所示。 图 8-7 定义自定义语句 或存储过程 图 8-8 添加 WHERE 子句 添加 WHERE 子句时, SQL

8、 语句中的值可以选择默认值 、 控件 、 Cookie 或者是 Session 等。当配置完成后,就可以测试查询,如果测试后显示 的结果如预期一样,则可以单击完成,如图 8-9 所示。 图 8-9 测试查询并完成 完成后, SqlDataSource 控件标签代码如下所示。 “ SelectCommand=“SELECT TITLE, ID FROM mynews“ 214 2 配置 SqlDataSource 控件属性 SqlDataSource 控件 还包括一些可视化属性,这些属性包括删除查询( DeleteQuery)、 插入查询( InsertQuery)、 检索查询 ( Select

9、Query) 以及 更新查询 ( UpdateQuery) 。 当需要使用可视化属性时,需选择【 使用自定 SQL 语句或存储过程】复选框 ,在导航中 可以使用查询生成器生成查询语句,如图8-10 所示。 图 8-10 自定义语句或存储过程 选择【查询生成器】按钮 , 系统会提示选择相应的表 并通过相应的表来生成查询 语句,如图 8-11和图 8-12 所示。 图 8-11 选择相应的表 图 8-12 使用查询生成器 配置相应的查询语句后, SqlDataSource 控件的 HTML 代码如下所示。 “ InsertCommand=“INSERT INTO mynews(ID) VALUES

10、 (control title)“ SelectCommand=“SELECT TITLE, ID FROM mynews“ 上述代码自动增加了一个 InsertCommand 并指定了 Insert 语句。开发人员可以为 SqlDataSource 控件指定四个命令参数: SelectCommand、 UpdateCommand、 DelectCommad 和 InsertCommand。每个都是数据源控件的单一属性,开发人员可以配置相应的语句指定 Select、 Update、 Delete 以及 Insert 方法。 SqlDataSource 控件 同时 能够使用缓存来降低页面与数据库

11、之间连接频率,这样可以避免开销很大的查询操作 , 以及建立连接和关闭连接操作。只要 数据库是相对稳定不变的,则可以使用 SqlDataSource控件的缓存属性( EnableCaching)来进行缓存。在默认情况下,缓存属性( EnableCaching)是关闭的,215 需要开发人员自行设置缓存属性。 8.1.2 Access 数据源控件 ( AccessDataSource) 在上一章中介绍了如何使用 ADO.NET 中 OleDb 来连接和读取 Access 数据库。 Access 数据库是一种桌面级的数据库,当对应用程序性能 , 以及数据库性能要求不是很高,并且数据量不需很大时,可以

12、考虑选择 Access 数据库。 SqlDataSource 能够与任何一种 ADO.NET 支持的 数据源 进行交互,这些 数据源 包括 SQL Server、Access、 Oledb、 Odbc 以及 Oracle。 但是 Access 数据库有专门的数据源控件, 就是 AccessDataSource。AccessDataSource 控件同 配置 SqlDataSource 控件基本相同, 如图 8-13 所示。 与 SqlDataSource不同的是, SqlDataSource主要采用的是 ConnectionString属性连接数据库,而 Access则采用的是 AccessD

13、ataSource 方式连接数据库。因为 Access 数据库是以文件的形式存在于系统中的,所以主要采用 DataFile 属性直接以文件地址的方式进行连接。要连接 Access 数据库,则必须选择 Access数据库文件,如图 8-14 所示。 图 8-13 选择数据库 图 8-14 选择 Access 文件 在选择了 Access 数据库文件后,单击 【 确定 】按钮 , 系统就会为开发人员配置连接字串,在核对无误后,单击【 下一步 】按钮进入 Select 语句 的配置。 同 SqlDataSource 控件一样 , 同样能够配置 Select语句或自定义存储过程, 如图 8-15 所示

14、。 同样 8-15 配置 Access 数据库的 Select 语句 216 其他步骤与 SqlDataSource 相同,当创建完成后, AccessDataSource 控件的 HTML 代码如下所示。 当 需要使用 Access 数据库,推荐将 Access 数据库文件保存在 App_Data 文件夹中。以保证数据库文件是私有的,因为 ASP.NET 不允许直接请求 App_Data 文件夹。 注意: AccessDataSource 控件不支持访问受密码保护的 Access 数据库文件,如果需要访问受密码保护的 Access 数据库文件,则需要使用 SqlDataSource 控件。

15、8.1.3 目标数据源控件 ( ObjectDataSource) 大多数 ASP.NET 数据源控件,如 SqlDataSource 都 是 在两层应用程序层次结构中使用。在该层次结构中,表示层( ASP.NET 网页)可以与数据层(数据库和 XML 文件等)直接进行通信。但是,常用的应用程序设计原则是 将表示层与业务逻辑相分离,而将业务逻辑封装在业务对象中。这些业务对象在表示层和数据层之间形成一层,从而生成一种三层应用程序结构。 ObjectDataSource 控件通过提供一种将相关页上的数据控件绑定到中间层业务对象的方法,为三层结构提供支持。在不使用扩展代码的情况下, ObjectDa

16、taSource 使用中间层业务对象以声明方式对数据执行选择、插入、更新、删除、分页、排序、缓存和筛选操作。 也就是说, SqlDataSource 是两层模型中使用的 .页面通过直接访问数据库 .。 ObjectDataSource 用于三层模型中,也就是将中间业务对象通过其访问数据库的。然后中间层业务对象再用在表示层中,例如在开发中使用的自定义控件。 ObjectDataSource 的业务对象是可以用检索或更新数据的业务对象,例如Bin 或 App_Code 目录中定义的对象,选择业务对象如图 8-16 所示。 图 8-16 选择业务对象 可以创建一个类库,并在 ASP.NET 网站中添

17、加引用,这样就可以通过 ObjectDataSource 对象选择该类库中的方 法,如图 8-17 和图 8-18 所示。 217 图 8-17 添加类库 图 8-18 添加引用 ObjectDataSource 控件对象模型类似于 SqlDataSource 控件。 ObjectDataSource 公开一个 TypeName属性,该属性指定要实例化来执行数据操作的对象类型,也就是类的名称。与 SqlDataSource 的命令属性类似,同样 ObjectDataSource 包括四个重要属性, 这四个属性 分别为 SelectMethod、 UpdateMethod、InsertMetho

18、d 和 DeleteMethod, 分别 用于指定要执行这些数据操作关联类型的方法。 选择对象后,就可以配置 SelectMethod、 UpdateMethod、 InsertMethod 和 DeleteMethod 属性的方法。示例 代码如下所示。 public class Class1 /创建类库 public string GetTitle() /创建方法 name = “title“; /变量赋值 return name; /返回 name public void InsertTitle() /创建方法 name = “insert“; /变量赋值 public string na

19、me; /创建共有变量 name ObjectDataSource 控件可以使用 Class1 中的对象,如图 8-19 所示。 218 图 8-19 定义数据方法 ObjectDataSource 控件可以使开发人员将诸如 GridView 和 DropDownList 这样的用户界面控件绑定到一个中间层组件。能够无需编写任何代码即可绑定到一个组件,从而极大的简化用户界面。 与其他的数据源控件相同, ObjectDataSource 控件在运行时可以接受参数,并在参数集合中对参数进行管理。每一项数据操作都有一个相关的参数集合。对于选择操作,可以使用 SelectParameters 集合,对

20、于更新操作,可以使用 UpdateParameters 集合,而给予 InsertParameters、 UpdateParameters、 DeleteParameters 集合,需要分别确定相应操作所需调用的方法。 8.1.4 LINQ数据源控件 ( LinqDataSource) 语言集成查询 ( LINQ) 是一种查询语法,它可定义一组查询运算符,以便 在任何基于 .NET 的编程语言中以一种声明性的方式来表示遍历、筛选和投影操作。数据对象可以是内存中的数据集合,或者是表示数据库中数据的对象。无需为每个操作编写 SQL 命令,即可检索或修改数据。 使用 LinqDataSource 控

21、件,开发人员可以通过在标记文本中设置属性从而在 ASP.NET 网页中使用 LINQ。 LinqDataSource 控件使用 LINQ to SQL 来自动生成数据命令。 LINQ 数据源可以是 LINQ 数据库或数组等以集合形式表现的数据库, 有关 LINQ 的知识会有专门的章节讲解 ,在这里使用数组作为数 据源,示例代码如下所示 。 public string arr=“1“,“2“,“3“,“4“; /创建数组 在 ASP.NET 页面中使用 LINQ 数据源控件可以对 LINQ 数据源进行查询, LINQ 数据源控件代码如下所示。 创建了 LINQ 数据源控件,同样单击【 配置数据源

22、 】按钮 可以 进行 LINQ 数据源 控件的数据源配置 ,如图 8-20 所示。 当选择上下文对象后,需要配置数据选择, LINQ 数据源控件同样支持 Group 和 Where 关键字,如图 8-21 所示。 219 图 8-20 选择上下文对象 图 8-21 配置数据选择 配置完成后, LINQ 数据源控件 HTML 代码如下所示。 当完成 LINQ 数据源控件 ( LinqDataSource)的配置后,就可以通过控件绑定 LINQ 数据源控件 来获取 LINQ 数据库中的信息。 LinqDataSource 控件按以下顺序应用数据操作: Where:指定要返回的数据记录。 Order

23、 By:排序。 Group By:聚合共享值的数据记录。 Order Groups By:对分 组数据进行排序。 Select:指定要返回的字段或属性。 Auto-sort:按用户选定的属性对数据记录进行排序。 Auto-page:检索用户选定的数据记录的子集。 LINQ 是 ASP.NET 3.5 中增加的一种语言集成查询,该控件的高级属性和方法在 ASP.NET 3.5 与LINQ 中会详细讲解。 8.1.5 Xml 数据源控件( XmlDataSource) Xml 数据源控件可以让数据绑定控件轻易的连接到 XML 数据源。在只读方案下通常使用XmlDataSource 控件显示 分层 XML 数据,但同样可以使用该控件显 示 分层数据和表格 数据 。 1 建立 XmlDataSource 控件 与 AccessDataScource 相同的是, XmlDataSource 控件同样使用 DataFile 属性指定 XML 文件并加载XML 数据,如图 8-22 所示。 数据源是 XML 文件,单击【浏览】按钮选择数据文件,如图 8-23 所示。 220 图 8-22 配置数据源

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报