VS2005培训课件3-WebForm网页的数据架构和数据连接技术.ppt_第1页
VS2005培训课件3-WebForm网页的数据架构和数据连接技术.ppt_第2页
VS2005培训课件3-WebForm网页的数据架构和数据连接技术.ppt_第3页
VS2005培训课件3-WebForm网页的数据架构和数据连接技术.ppt_第4页
VS2005培训课件3-WebForm网页的数据架构和数据连接技术.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web Form 网页的数据架构和数据连接技术,Web Form 网页数据存取的基本概念,Web Form 网页的数据存取和 Windows Form 表单的数据存取在许多方面不不尽相同 状态管理 服务器和客户端的分离 延展性 Web Form 网页数据存取的概念基础: 采用中断连接模型 假设数据读取的频率远高于数据更新的频率 期望使用最少的服务器资源 使用远端处理流程存取数据,也就是分散式数据存取,中断连接模型(Disconnected Model),Web Form 网页是中断连接的,其数据存取亦是采用此模式。 中断连接模型決定您在 Web Form 网页中的数据存取方式: 您所使用的数据于每一次往返中並不是自动可使用的。 请不要让连接到数据来源的连接持续保持开启状态。 每一次往返于服务器时,只会执行单项的数据存取操作。,数据的读取与更新频率,大多数的数据存取操作都是采用只读模式。 Web Form 网页的数据连接架构是单向的。 拥有更高的效率。 Web Form 网页预设并没有内含将控制项数据写回数据来源的方法,您必须自己编写程序代码來完成。,降低服务器的負荷,网页中的任何数据存取都会增加服务器的处理时间并占用内存。 Web应用程序在数据存取操作方面的设计准则: 只从数据来源提取出网页所需的数据。 尽可能使用客户端的状态管理来存取数据。,远端处理流的数据存取,建议您将数据存取逻辑从使用者界面分离出来,而将它放在能够与数据来源互动的元件中。 Web Form 网页实际上是通过一个 XML 数据流与其他的处理流交换数据。,Web Form 网页的数据来源,数据库存取 ADO.NET 受管理的数据提供者(Connection 与 Command 组件) 数据集(Dataset) 直接执行 SQL表达式或存取过程 XML 数据 将 XML数据转换成数据集,并使用 ADO.NET数据访问方式读取与更新数据。 使用 System.Xml 命名空间的 XML 分析与方法来处理数据。 其他数据来源 Web Form 网页的数据连接架构允许您将控制项连接至任何结构。 您可以连接至网页中任何可使用的数组或集合,以及网页或其他控制项的属性。,数据集、数据适配器、与数据读取器,数据集(DataSet) 应用程序所实际使用的数据在内存中的复本,是真正的数据快取。 数据集与其他数据来源是中断连接的,亦即采用一种离线的模式。 仍然可以更新数据来源。 客户端的虚拟数据库。 数据适配器(DataAdapter) 数据集与数据来源之间的桥梁。 Fill 方法。 Update 方法。,数据集、数据适配器、与数据读取器,数据读取器(DataReader) 对 Web 应用程序而言,我们常常只是执行简短的操作,显然这并不需要在数个一系列的请求间保留 DataSet 组件,此时数据读取器反而是较好的选择。 数据读取器能够自 SQL 数据库中提取只读向前的读取模式。 通过调用 OleDbCommand 或 SqlCommand 的 ExecuteReader 方法可传回数据读取器,然后便可将其连接至 ASP.NET 服务器控制项。 自行开启和关闭连接。 ExecuteNonQuery 方法。,数据存取策略,数据集 vs 数据读取器 数据集与数据命令 存留周期(Web Form网页会先被初始化、接着被处理进行、然后于每次往返时被舍弃)。 在许多情况下,使用数据读取器提取数据然后于执行阶段连接控制项将会更有效率。 例外状况: 使用关联数据表 与其他处理流交换数据 使用静态的数据项集合,数据存取策略,存取数据集或每次重新建立 每当网页被处理时,就建立数据集并填满它。当网页处理完并将网页传回浏览器时,数据集将被移除。 建立并填满数据集一次。通常是在网页第一次执行时建立并填满数据集一次,然后再在每次次往返时可取会存储的数据集。 服务器或客户端快取 在服务器中以工作阶段状态、应用程序状态、或使用快取來存储数据集。 在客户端中(亦即在网页中)使用检查状态存储的数据集。,连接属性,Web Form 网页中的数据连接是非常灵活的,基本上它允許您将控制项的任何属性连接到数据来源。 设定要在 TextBox、Label、Button、LinkButton 或其他控制项中显示的文字。 设定超连接控制项的 Href 属性来决定其目标网页。 将 CheckBox 服务器控制项连接至布尔值,以便直接设定控制项的选取状态。 将 Image 服务器控制项的 ImageUrl 属性连接至內含图形的 URL 或名称的数据库属性,以便设定要于该控制项所显示的图形。 设定控制项的色彩、字型或大小。如果您喜欢将使用者的偏好设定存储在数据库或其他数据来源中,这将是一种非常好用的方法。,将所要连接的数据的相关信息建立在运算式中,然后再将运算式的结果指派给控制项属性。 可连接到数据来源、公用变量、简单属性、集合、运算式、方法调用传回的结果、Page 的属性以及其他控制项的属性。 数据连接运算式的语法: runat=“server” / 或 常量字串 ,数据连接运算式范例,DataBind 方法,ASP 的 Response.Write 语法()会在网页被处理时加以评量,然而 ASP.NET 的数据连接运算式却只有当 DataBind 方法被调用时才会进行评量。 Page 与所有服务器控制项都拥有 DataBind 方法。 当您调用某一个服务器控制项的 DataBind 方法时,会将数据来源连接到该服务器控制项以及它所有的子控制项(包括服务器控制项属性),亦即只需调用父控制项的 DataBind 方法即可。 使用运算式进行数据连接的好处是拥有下列灵活性: 您可以使用任何运算式,只要该运算式可以解析成单一数据值或控制项可以使用的数据值即可。 您可以将运算式指派給任何属性,也就是说,您可以将任何属性连接到数据。,Web Form 网页范例,1.aspx 演示如何连接到网页上的简单属性。 2.aspx 演示如何将控制项的属性连接到其他控制项的属性。 3.aspx 演示如何将控制项的属性连接到其他的控制项的属性。 4.aspx 演示如何将 DropDownList 服务器控制项连接到ArrayList 组件,以便使 ArrayList 组件的元素成为下拉式清单的选项。,使用 DataBinder 类别进行连接,DataBinder.Eval 方法的三个参数: 运算式所据评估的数据容器的组件参考。此参数在网页的指定语言中必须是有效的组件识别码。此数据容器可能是数据集、数据表、数据视图、或父控制项。 浏览路径,也就是所要连接的数据成员。它必須是以英文句点分隔的字串类型的属性或字段名称。 .NET Framework 格式字串,类似 String.Format 所使用的,会将 Object(数据连接运算式的评量结果)转换成一个能够被提出请求的浏览器所显示的 String。此参数是可选项。,使用 DataBinder 类别进行连接,使用数据连接运算式将 TextBox 服务器控制项的 Text 属性连接到内含单列数据的数据视图 : 不使用 DataBinder 类别 使用 DataBinder 类别 ,使用 DataBinder 类别进行连接,DataBinder 类别最主要的优点,就是能自动进行类型转换。 在 DataList、DataGrid 或 Repeater 等能够显示多列数据的服务器控制项的模板(Template)中,数据项目的命名容器永远是 Container.DataItem。 Page 是另一个可以用于DataBinder.Eval 的命名容器。,Web Form 网页范例,C5.aspx 本网页范例用DataBinder.Eval 的写法,显得更加简洁。,数据连接的时机和时机的类型,数据连接的时机 设计阶段 执行阶段 DataBinding 事件 数据连接的类型 一次只显示单一数据值的 Web 服务器控制项与 HTML 服务器控制项。 一次显示多个数据项或多列数据的 Web服务器控制项与 HTML 服务器控制项。,连接多列数据项的 Web 服务器控制项,您可以将 DropDownList、ListBox、CheckBoxList、RadioButtonList、DataGrid、DataList、Repeater 等多笔数据列的服务器控制项连接到内含多信息项目的数据来源。 步骤: 将服务器控制项的 DataSource 属性设定成您所要连接的数据来源,包括: ArrayList 组件 集合 数据读取器 DataView 组件 DataRow 组件 数据集当中的 DataTable 组件 指定要连接哪一个数据成员(DataMember 属性)。,连接多列数据项的 Web 服务器控制项,步骤: 如果使用的是 DataGrid 或 DataList 服务器控制项,请将 DataKeyField 属性设定成您可以在执行阶段用来独立识别的数据列名称,一般情况,就是数据来源的主索引关键字段。 如果您使用的是 ListBox、DropDownList、CheckBoxList、RadioButtonList 或 HtmlSelect 控制项,请将 DataTextField 属性设定为其数据内容要显示于字段名称。例如: MyDropDownList.DataTextField = “姓名“ 将 DataValueField 属性设定为某一个字段的名称,以便使该字段的内容将成为服务器控制项中内容项目的关联值(亦即 Value 属性)。这是可选项。例如: MyDropDownList.DataTextField = “姓名” MyDropDownList.DataValueField = “目前工资“,连接多列数据项的 Web 服务器控制项,步骤: 在 Web Form 网页中编写程序代码来调用网页或服务器控制项的的 DataBind 方法。 请注意,为避免耗用资源造成效率低,我们通常不希望在每次往返时都调用 DataBind 方法,因为它会替换服务器控制项中的数据值。您可以在检查网页的 IsPostBack 属性来确保只有在网页第一次开启是进行数据连接操作。例如: If (! IsPostBack ) 在数据连接过程中,多信息服务器控制项会扫描数据来源,循环提取每一数据。数据的处理由显示控件来决定。DataGrid 会自动显示所有数据列或根据您的设定显示的子集合;相反地,Repeater 与 DataList 则是作为嵌入的模板容器,进行数据连接。 请注意:您可以将多项数据列 Web 服务器控制项的个别属性接连到单一的数据值。比方说,虽然 DataGrid 服务器控制项一次可以显示多列,但是您可以将它的 BackColor 属性连接到单一的数据值。,如何在设计阶段连接属性,您可以将 Web 服务器控制项的属性连接到任何可显示该属性的单一数据值: TextBox.Text Image.ImageUrl HyperLink.NavigateUrl 在设计阶段,您可以使用数据连接运算式将控制项属性连接到数据值。 数据集不会维护 “作用数据列” 的概念,因此沒有任何方式可以表示连接至哪一笔数据列。但是请注意,這与 Windows Form 是不同的。,如何在设计阶段连接属性,欲在连接到单一数据值时,精确地指出您所要使用的数据列,请使用下列作法: 建立一个数据视图(View)去筛选数据集中的数据表以获取单一列数据,之后进行连接:DataBinder.Eval(DataView1, “0.姓名“) 只在数据集中填入一个数据列。 在执行阶段对控制项进行数据连接,如此便可使用程序控制的方式来决定要连接到哪一数据项。此种模式通常会执行 SQL 表达式或存储过程并连接到其结果。 您可以将任何单一值 Web 服务器控制项属性连接到数据值。,如何在设计阶段连接属性,在设计阶段连接 Web 服务器控制项的属性有两种作法: 直接在 HTML 源文件中进行编写。 利用Web Form设计工具内含的辅助界面来完成。 DEMO,如何在执行阶段连接属性,响应由服务器控制项所引发的数据连接事件,并利用事件程序代码来完成属性值的设置。 如果您希望每当网页或容器控制项的 DataBind 方法被调用时,某服务器控制项的属性设置要执行的话,则可以将相关程序代码编写该服务器控制项的 DataBinding 事件处理中。 网页范例:C6.aspx 演示如何使用 DataBinding 事件来建立数据浏览界面。,DataGrid 服务器控制项的数据连接,使用 DataSource 属性来连接到数据来源。 连接的时机 执行阶段 设计阶段 无论您使用代码方式或界面工具来连接到数据来源并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论