四、 把SqlDataSource控件连接到数据库
现在,既然我们看到了怎么创建并且通过Visual Studio的接口来使用数据库;下面,让我们把注意力转到从一个ASP.NET 2.0 web页面访问和显示来自一数据库的数据上。ASP.NET 2.0包括了几个新的数据源控件-它们的唯一目的是提供到数据的声明性存取。共有五个内置的数据源控件-它们都能够在Visual Studio中的工具箱的"数据"部分找到(请见下边的屏幕快照)。
·SqlDataSource-用于检索和修改来自于一个关系数据库的数据。这里的"Sql"并不意味着这种数据源只与微软SQL Server一起工作;而是可以与其它任何一种关系数据库一起工作:SQL Server,Access,Oracle,等等。如果你在连接到一个SQL Server数据库 ,那么控件将会非常聪明地在内部启用SqlClient类。
·AccessDataSource-用于检索和修改来自于一个Access数据库文件的数据。你可能想知道,如果SqlDataSource能够与Access数据库文件一起工作,那么为什么还存在这个控件呢?其实,这个Access数据源控件使得你更容易地连接到一个Access数据库-你只要指定到Access数据库的.mdb文件的路径即可。注意在使用SqlDataSource时,你需要使用一完全限定的指定数据提供者的连接串。
·ObjectDataSource-用于通过一个商业对象来检索和修改数据。理想地,你的ASP.NET应用程序包括一组类-它形成中间层(而不是让ASP.NET页直接操作数据库)。如果你有如此的结构,那么可以使用ObjectDataSource来查询中间层。
·XmlDataSource-用于检索来自一XML文件的数据。
·SiteMapDataSource-用于提供只读存取定义在站点地图中的站点结构。这个控件在当你想要在一个TreeView或Menu控件中显示一个站点的结构时使用。
在本文中,我们将只讨论Sql数据源控件,并且仅分析其基本功能。
首先,让我们添加一个Sql数据源控件到你的ASP.NET页面。从设计视图中,Sql数据源控件包含一个"灵敏标签"-它列举出它的常用功能。该"Configure Data Source"灵敏标签链接将激活一个向导-它将一步步引导你通过整个的配置数据源的过程。这个向导主要有三个步骤(和一个可选的"子步骤"):
1. 选择你的数据连接-在第一步中,我们需要指定连接到什么数据库。这个屏幕包含在App_Data文件夹中数据库的一个下拉列表和在数据连接选项卡中的一个下拉列表。还有一个"New Connection"按钮-你可以点击它,如果你想要连接到一个不在这些位置之一中的数据库。如果你继续下去,可以从下拉列表框中选择Customers.mdf选项。
A) 子步骤:如果这是你添加连接的第一次,你将会被提示是否你想要把连接串保存到Web.config之中;而且如果这样的话,应该是连接串的名字。如果你继续下去,我选择用名字Customers ConnectionString把连接串保存到Web.config中。
2. 设置Select语句-下一步是指定你想要返回什么记录,应用什么样的条件语句以及返回数据的排序顺序。为此,你可以通过使用向导来选择一个数据表或视图并且选择返回哪一列,或你可以手工地输入一个Select语句。无论哪一种方法,都是让Sql数据源控件返回来自Customers数据表的所有的列-换句话说,让它实现"Select * FROM Customers"。
3. 查询测试-你可以针对数据库运行你的Select查询以得到返回数据的一个预览。请自由地点击"Test查询"按钮;你应该看见所有的来自该Customers数据表的所有记录。
一旦你配置好SqlDataSource,请拿出一点时间看一下Source视图并且检查一下为Sql数据源控件所使用的声明性标记:
<asp:SqlDataSource ID=\"SqlDataSource1\" runat=\"server\"
ConnectionString=\"<%$ ConnectionStrings:CustomersConnectionString %>\"
SelectCommand=\"Select * FROM [Customers]\">
</asp:SqlDataSource>
有几点要注意:首先,ConnectionString属性使用了新的句法<%$ … %>。这个句法从Web.config文件中检索ConnectionStrings节的值的Customers ConnectionString值。换句话说,它从Customers数据库中获取连接串-该串是我们在Sql数据源控件的向导的子步骤中保存下来的;其次,Select查询语句是在控件的SelectCommand属性中指定的。
这些数据源控件其自身只与数据一起工作。他们不显示数据。如果你通过你的浏览器访问这个ASP.NET页面,你将发现没有产生输出。为了观察由我们刚才创建的Sql数据源控件所返回的数据,我们需要添加一个数据Web控件。对于本文来说,让我们使用GridView控件-你也可以在工具箱的"数据"节中找到它。该GridView是ASP.NET 1.x的DataGrid控件的"老大哥"-它提供了一些新的特性。在本文中,我们只分析到GridView的简单的数据绑定。
现在,我们把一个GridView控件拖动到你的ASP.NET页面上。从设计视图中,该GridView的灵敏标签包括一个"Choose Data Source"选项并且有一个下拉列表的所有的数据源控件在该页面上。把这个下拉列表设置为SqlDataSource1-即是我们刚添加的Sql数据源控件的ID。一旦做完这些,该GridView将自动地有一个BoundFields添加到它上面-对于由数据源所返回的每一列(该GridView的BoundField等价于DataGrid中的BoundColumn)。通过GridView的 。灵敏标签来设置"Choose Data Source"下拉列表就可以把GridView的DataSourceID属性设置为所选择数据源控件的ID。
就这么多,不需要写一句代码!下面是通过一浏览器观看该GridView时的一个屏幕快照。
通过使用GridView和Sql数据源控件,我们就能够在30秒内从一个空白页转到一个显示数据库数据表的内容的页面。事实上,我们可以在另一个30秒内完成把分页、双向排序、删除和编辑支持添加到该GridView上,现在且不多谈!)
更多相关 用VS2005开发ASP.NET 2.0数据库程序 的文章:
更多Asp.Net 2.0 SQL Server 2005数据库开发 相关文章请查看本站数据库专栏