ASP.NET 2.0包含了AccessDataSource控件,用来从Access数据库中将数据提取至ASP.NET 2.0(.aspx)页面。这个控件拥有的属性很简单。AccessDataSource的最重要的属性是DataFile属性,用来指向
硬盘上MDB文件的路径。AccessDataSource拥有的其他属性还有SelectCommand,用来设定一个显示需要返回的结果集(表和列)的语句。SelectCommand必须使用SQL语法来定义。
在VWD中,可以用两种方式来添加AccessDataSource控件至页面。如果MDB文件像前面的示例中那样被添加至Database Explorer中,那么可以拖放列名称至页面上,而且VWD将会自动创建AccessDataSource控件和GridView来显示数据。如果不想使用GridView或者想定制控件,那么可以只从工具框中添加AccessDataSource控件并通过配置向导进行安装。向导将会提示浏览查找数据文件,并且允许通过在数据库的表中选择列来指定SelectCommand。如果是在VWD之外输入页面的,那么可以按照如下所示代码来输入:
<asp:AccessDataSource> ID="MySourcName" Runat="server" DataFile="MyMDBName.mdb" SelectCommand="SELECT MyField1, MyField2 FROM MyTable"> </asp:AccessDataSource> |
需要再次提及的特性很简单。您所要提供的就是一个ID、MDB文件名以及一个SelectCommand。
本文讲述的是关于数据源控件的内容,但是回想起来数据源控件并不在页面上呈现任何可见的东西。所以为了给您一个可见方式来测试数据源控件,下一个“试一试”将介绍使用GridView控件(从ASP.NET 1版本的DataGrid控件演变而来)在表格中显示数据的基本步骤。请注意本章的重点不是在GridView的配置和定制上;在这样的情况下,重点是在数据源控件上。在随后的第5章中,将会更加详细地研究GridView控件。
试一试 #2—— 连接至MDB并用GridView显示数据
在本文事例,将通过页面上的Northwind显示已经销售出去的产品的信息。
(1) 启动页面编辑器并浏览至C:\Websites\BegAspNet2Db\ch02\。
(2) 从Web Form模板中添加名为TIO-ch02-2-DisplayAccessData的页面。单击下方的标签切换至Design视图。
(3) 在页面的顶部,输入标题,例如“连接至MDB数据源的演示”,并将相同的文本放入页面的标题中。虽然在每个练习中都没有讨论过这一步,但是我们建议在每一页中都包含一个标题和HTML文本,这样就不会找不到正在浏览的页面了。
<html> <head> <title>TIO ch02-1 Display MDB Data</title> <head> <body> <h3>ch02 TIO 2 Demonstration of connection to an MDB source </h3> <body> </html> |
(4) 显示工具框(Menu:View|toolbox或者键入Ctrl+Alt+X)并展开工具框的Data面板。
(5) 将一个AccessDataSource控件拖至页面。
(6) 控件的便捷任务面板应当自动出现,如果面板没有自动出现,那么可以选择新的数据源并单击右上方的小箭头来打开便捷任务面板。单击Configure Data Source。
(7) 在Choose a Database步骤,单击Browse 按钮并选择C:\Websites\BegAspNet 2Db\App_Data\Northwind.mdb,并注意设计器将文件说明转换为相对引用,也就是用符号(~)表示站点的根目录。
(8) 在Configure Select Statement对话框中,选择Specify Columns选项并选择Products表。点选星号以选择所有列。依次单击Next、Test Query和Finish。
(9) 选择Data控件并通过按下F4显示Properties窗口。将其ID更改为NorthwindProducts。
(10) 回到工具箱的Data面板,在GridView上双击将控件添加至页面并进入Common Tasks Menu,然后单击Choose Data Source。选择NorthwindProducts并结束向导。
(11) 选择GridView并将其ID更改为NorthwindProducts。页面应该如下所示:
<%@ page language="VB" %> <html> <head><title>ch02 TIO 2 Display MDB Data</title></head> <body> <h3>ch02 TIO 2 Demonstration of Connection to an MDB Source </h3> <form runat="server"> <asp:accessdatasource id="NorthwindProductsAccDataSource" runat="server" selectcommand="Select * From Products" datafile="~/App_Data/Northwind.mdb"> </asp:accessdatasource> <asp:gridview id="NorthwindProductsGridView" runat="server" datasourceid="NorthwindProductsAccDataSource"> </asp:gridview> </form></body></html> |
(12) 打开浏览器并查看C:\Websites\BegAspNet2Db\ch02\ch02_TIO_2_ Dis- playAccessData.aspx(参见图2-2)。
图 2-2
(13) 最后的操作是从MDB Query而不是表中显示数据。关闭浏览器并返回至VWD。用新名称ch02_TIO_2_DisplayAccessData-Query.aspx保存文件。选择GridView并通过单击控件右上方的小箭头来打开它的Common Task Menu。单击Configure Data Source和Next跳过MDB文件的选择。在Configure Select Statement的界面上,将名称改为“销售分类”并点选星号以获得所有的字段。这个查询使用JOIN将四个表结合在一起,限制在一个表中使用的记录数并通过一些数据的分组和聚合操作来获得总数。依次单击Next、Test the Query和Finish。数据源控件应当像如下所示:
<asp:accessdatasource id="NorthwindProductsAccDataSource" runat="server" selectcommand="Selcet * From [Sales by Category] " Datafile="~/App_Data/Northwind.mdb"> </asp:accessdatasource> |
(14) 打开浏览器并查看页面。
示例说明 #2—— 连接至MDB并用GridView显示数据
您有两个页面上的控件。第一个是AccessDataSource,执行连接ADO.NET对象的所有工作,而这些对象连接那些与MDB文件交互的JET引擎。第二个是GridView,用于获取数据并将其格式转化为页面可以显示的HTML格式。请注意给每个控件一个有意义的名称(ID)非常重要。然后必须确定数据绑定控件(GridView)使用它的DataSourceID属性来引用AccessDataSource的ID以便将AccessDataSource作为它的数据源。
从查询中显示数据并不非常困难;在Access中可以不用表名称而使用查询名称。这里有两个说明。第一,如果表或者查询的名称中间有空格,那么必须用方括号将整个名称括起来。第二,需要用户输入(例如,“指定年份的销售”需要知道是哪一年)的查询涉及到的技术不在本书的讨论范围之内。
完成前面几个步骤之后,就可以在页面上看到从AccessDataSource控件获得的数据显示了。后面的章节将详细介绍GridView,但是本章还将继续关注数据源控件。