(14) 打开浏览器并查看页面。
示例说明 #2—— 连接至MDB并用GridView显示数据
您有两个页面上的控件。第一个是AccessDataSource,执行连接ADO.NET对象的所有工作,而这些对象连接那些与MDB文件交互的JET引擎。第二个是GridView,用于获取数据并将其格式转化为页面可以显示的HTML格式。请注意给每个控件一个有意义的名称(ID)非常重要。然后必须确定数据绑定控件(GridView)使用它的DataSourceID属性来引用AccessDataSource的ID以便将AccessDataSource作为它的数据源。
从查询中显示数据并不非常困难;在Access中可以不用表名称而使用查询名称。这里有两个说明。第一,如果表或者查询的名称中间有空格,那么必须用方括号将整个名称括起来。第二,需要用户输入(例如,“指定年份的销售”需要知道是哪一年)的查询涉及到的技术不在本书的讨论范围之内。
完成前面几个步骤之后,就可以在页面上看到从AccessDataSource控件获得的数据显示了。后面的章节将详细介绍GridView,但是本章还将继续关注数据源控件。
选择语句中的变量
当在VWD中创建一个数据源时,向导将会要求指定需要显示的列或者要求创建一条定制的SQL语句。在前面的“试一试”中,简单地选择了几个列。可以以几种不同的方式来指定更复杂的SQL语句:
● 使用交互式的对话框
● 在AccessDataSource向导(由控件中的Configure Data Source便捷任务调用)中输入定制的SQL语句
● 在属性网格中输入语句
● 直接在Source视图的标记中输入语句
对那些从单独的表中返回一个或者多个列的简单查询来说,在Access DataSource向导中选择列是一个首选技术,因为它减少了排版和语法所带来的错误(请参见图2-3) 。在这个向导中,可以从Name下拉列表中选择表或者查询的名称。然后您可以通过选择所有列(*)或者任一组列来选择表或者查询中需要的列。如果您单击了Order By按钮,那么您就可以在数据源中按照任何列来进行排序。如果第一个列有约束,那么将会使用在Then By中选择的字段。在您从向导中选择选项的时候,请注意SelectCommand的实际SQL语法也同时显示在一个只读文本框中。
图 2-3
利用向导中的WHERE按钮可以创建带有参数的SQL语句,这部分内容将会在第9章中介绍。现在,我们将跳过这个选择,但是重要的是在部署之前您将使用这些将在本书后面讨论的参数。在一个部署完成的站点中,要避免直接将用户的输入与SQL语句连接。忽略参数问题将会使站点暴露在SQL注入攻击的危险之中。这种攻击技术使用了从用户输入而来的假字符使得原来的SQL语句无效,然后用具有破坏性的语句取而代之。可以使用参数集合来发送用户输入至ADO.NET参数集合,这样可以利用集合的功能减少SQL注入的问题。
虽然Configure Data Source向导具有很多选项可以帮助快速地创建SQL语句,但是有些时候还是需要在标记的SelectCommand中直接输入(或者修改)SQL语句。AccessDataSource向导允许进行这些操作。在选择表、查询和列的向导页面中,可以选择“Specify a custom SQL statement or stored procedure”的单选按钮。在向导页面中选择这个选项之后单击Next按钮将进入另外一个页面,可以直接在文本区域中输入自定义的语句。还可以使用Visual Studio QueryBuilder来可视化地创建自定义语句,所使用的工具与Access QueryBuilder的非常相似。
如果不想使用向导,那么可以选择在AccessDataSource控件的属性网格中输入自定义的SQL语句,或者可以切换至Source视图并在AccessDataSource控件标记的SelectCommand属性中输入语句。
关于SQL有很多书籍(像本书一样类型的还有Beginning SQL Programming,ISBN 1-861001-80-0) ,本书在附录中提供了一个简要的介绍。如果打算学习SQL语法,那么开始阶段可以学习返回记录的一部分(TOP和DISTINCT)的命令、重命名一个字段(AS)的语法,以及从两个相关联的表返回字段的技术(JOIN)。下面的练习将探究SQL语句中的一些变量。
试一试 #3—— 更改AccessDataSource中的选择语句
在本练习中,将要从Northwind的Products表中显示特定的列和特定的记录。还将创建一个页面用来显示从查询中获得的数据。请注意在本练习中,选择规则已经在源代码之中了。目前,还没有将用户输入作为选项。
(1) 在C:\Websites\BegAspNet2Db\ch02\中创建名为ch02_TIO_3_AlternateSelect- Commands.aspx的文件。
(2) 以Northwind作为ID添加一个AccessDataSource控件并设置MDB为\App_Data\Northwind.mdb。在一系列对话框中,设置Select命令从Products表中获取所有的字段( “name”=Products)。查看一下Source视图并注意您所创建的语句,如下所示:
| SELECT * FROM Products |
(3) 添加GridView,将ID设置为Northwind,将数据源设置为Northwind。如下所示是到目前为止整个页面的样子:
| <%@ page language="VB" %> <html> <head runat="server"> <title>ch02 TIO 3 Alternate Select Conimands</title> </head> <body> <h3>ch02 TIO 3 Alternate Select Coinmands</h3> <form runat="server"> <asp:accessdatasource id="NorthwindAccDataSource" runat="server" selectcommand="SELECT * FROM Products" datafile=" ~/App_Data/Northwind.mdb" > </asp:accessdatasource> <asp:gridview id="GridViewl" runat="server" datasourceid="NorthwindAccDataSource"> </asp:gridview> </form> </body> </html> |
(4) 现在在浏览器中打开页面,并注意如图2-4所示的界面(在截图中没有显示所有的列)。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



