加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在ASP.NET 2.0中操作数据之四十六:使用SqlDataSource控件检索数

发布时间:2016-11-24 13:16:59 所属栏目:MsSql教程 来源:站长网
导读:导言 到目前为止,我们探讨的教程是由表现层,业务逻辑层和数据访问层构成的层次体系结构。数据访问层和业务逻辑层分别在教程第一和第二章提到。在Displaying Data With the ObjectDataSource 这篇教程里,我们探讨了怎样用ASP.NET 2.0的新控件--ObjectDat

  在SqlDataSource文件夹中打开Querying.aspx页面,切换到设计试图。从工具箱中拖一个SqlDataSource控件到设计器中,设置其ID 为 ProductsDataSource。和ObjectDataSource一样,SqlDataSource不产生任何的声明标记,所以现在在页面上看起来就象一个灰色的方块。点击SqlDataSource控件的智能标签,点“Configure Data Source”链接,进入数据源配置向导。

/uploads/allimg/c161121/14OI93G452F-24VI.gif
图6:在智能标签里点击“设置数据源”链接。

  ObjectDataSource控件和 SqlDataSource控件的配置向导有些许不同,但最终目的都是相同的:详细的说明了如何从数据库获取,插入,更新和删除数据。ObjectDataSource控件明确指定了要访问的数据库,并提供了要使用的SQL查询声明或存储过程的详细情况

  向导的第一步是选择要访问的数据库,在下拉列表中包含了放在App_Data 文件夹中的数据库,以及添加到服务器资源管理器的数据连接节点中的数据库。一旦我们将一个连接到App_Data文件夹中的NORTHWIND.MDF数据库的连接字符串添加到项目的Web.config 文件中,这个连接字符串就会出现在下拉列表的选项。如下图,选中它,点“下一步”。

/uploads/allimg/c161121/14OI93GGN0-253P3.gif
图7:从下拉列表里选择NORTHWINDConnectionString

  选择数据库后,向导转入“如何从数据库检索数据”界面。有2种方式:第一种指定自定义SQL语句或存储过程,第二种是指定来自表或视图的列。

  注意:我们先探讨使用“指定来自表或视图的列”选项的实例,稍后再探讨用“自定义SQL语句或存储过程”选项的实例。

  图8是我们点击“指定来自表或视图的列”单选按钮时的画面,这里我们选择Products表,返回ProductID, ProductName和UnitPrice 列。完成选择后,在底部的方框内将显示SQL语句: SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]

/uploads/allimg/c161121/14OI93Gc20-2B292.gif
图8:从表Products返回数据。

  完成上述设置后,点“下一步”按钮,进入测试查询界面,在这里可以测试上一步所设置的查询的结果。点击“测试查询”按钮,执行查询。

/uploads/allimg/c161121/14OI93H3BP-2I1O.gif
图9:点击“测试”,从SELECT 查询检索数据。

  最后,点“完成”按钮完成向导。

  和ObjectDataSource一样,SqlDataSource的向导设置只是完成了对SqlDataSource控件属性的赋值而已,即ConnectionString 属性和SelectCommand 属性。完成设置之后,我们的SqlDataSource控件代码应该和下面的差不多:

<asp:SqlDataSource ID="ProductsDataSource" runat="server"
 ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
 SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]">
</asp:SqlDataSource>

  其中ConnectionString属性提供了怎样连接数据库的详细信息,可以用完整的,硬编码的连接字符串对其赋值,也可以用Web.config文件中的连接字符串来赋值。当用Web.config文件中的字符串时,语法为:<%$ expressionPrefix:expressionValue %>,特别地expressionPrefix就是“ConnectionStrings”,而expressionValue 则是Web.config文件<connectionStrings>部分中,连接字符串的名字。关于此语法的更多信息请参考: ASP.NET Expressions Overview

  而SelectCommand属性是SQL查询语句或存储过程的详细陈述。

第三步:添加数据Web控件并绑定到SqlDataSource

  一旦设置好SqlDataSource后,就可以用GridView 或DetailsView等数据Web控件绑定它。在本篇教程中我们使用GridView,从工具箱拖一个GridView控件到页面上,在智能标签中的“选择数据源”里选ProductsDataSource ,这样就将GridView控件绑定到我们前面设置的SqlDataSource控件了。

/uploads/allimg/c161121/14OI93H59620-2Y2a.gif
图10:添加GridView控件并绑定到SqlDataSource

  完成绑定后,Visual Studio 会自动为GridView从数据源控件返回的每一列添加一个BoundField 或CheckBoxField 。就本文来说既然SqlDataSource从数据库返回三列:ProductID, ProductName, 和 UnitPrice ,那么Visual Studio就在自动在GridView中生成三列(three fields )。

  花几分钟来设置GridView的三个BoundFields:把ProductName field的HeaderText 属性设置为“Product Name”,UnitPrice field设置为“Price”,同时格式化为货币形式。修改后,你的GridView代码看起来应该象下面这样:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
 DataKeyNames="ProductID" DataSourceID="ProductsDataSource"
 EnableViewState="False">
 <Columns>
  <asp:BoundField DataField="ProductID" HeaderText="ProductID"
   InsertVisible="False" ReadOnly="True" SortExpression="ProductID" />
  <asp:BoundField DataField="ProductName" HeaderText="Product Name"
   SortExpression="ProductName" />
  <asp:BoundField DataField="UnitPrice" HeaderText="Price"
   SortExpression="UnitPrice" DataFormatString="{0:c}"
   HtmlEncode="False" />
 </Columns>
</asp:GridView>

  在浏览器中浏览本页,如图11所示,GridView列出了每个产品的ProductID, ProductName, 和UnitPrice。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读