在ASP.NET 2.0中实现数据的绑定(4)
发表于:2007-06-30来源:作者:点击数:
标签:
我们还可以给SqlDataSource数据源控件的SelectCommand属性指定一个存储过程来替代一个 SQL 命令,而且使用存储过程具有更大的灵活性。为了实现该功能,可以设置SqlDataSource数据源控件的SelectCommandType属性为"StoredProcedure". 现在我们就利用SQL Serve
我们还可以给SqlDataSource数据源控件的SelectCommand属性指定一个存储过程来替代一个
SQL 命令,而且使用存储过程具有更大的灵活性。为了实现该功能,可以设置SqlDataSource数据源控件的SelectCommandType属性为"StoredProcedure".
现在我们就利用
SQL Server自带的示例
数据库Northwind的"TenMostExpensiveProducts"存储过程来实现一个只读报表。
该存储过程主要是在"Products"表中选择"ProductName"和"UnitPrice"两个字段,其代码如下:
create procedure "Ten Most Expensive Products" AS
SET ROWCOUNT 10
SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
FROM Products
ORDER BY Products.UnitPrice DESC
页面代码如下:
<form id="form1" runat="server">
<ASP:GridView ID="GridView1" DataSourceID="SqlDataSource1" AutoGenerateColumns="False"
runat="server">
<Columns>
<asp:BoundField DataField="TenMostExpensiveProducts" HeaderText="Product" />
<asp:BoundField DataField="UnitPrice" DataFormatString="{0:c}" HeaderText="Price" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
SelectCommand="Ten Most ExpensiveProducts" ConnectionString=
"<%$ ConnectionStrings:Northwind %>" SelectCommandType="StoredProcedure" />
</form>
在本例中我们可以通过设置SqlDataSource数据源控件的SelectCommandType属性为"StoredProcedure"来实现,如下图:
也可以在数据源配置向导按下述步骤进行:
当进行到"配置选择语句"窗口时,选择"指定一个自定义的SQL语句或存储过程"项,单击"下一步"
在"自定义语句或存储过程"窗口中,选择"储存过程"项。并选择"Ten Most Expensive Products"
等一系列的操作完成后,按F5执行该程序,页面显示如下:
一般情况下,SqlDataSource数据源控件只返回包含查询结果的DataSet对象中的DataView。你可以配置SqlDataSource数据源控件将数据以DataReader的发生返回。当你希望只读,向前的数据存取时,采用DataReader的比DataSet具有更好的
性能。尽管如此,当你需要SqlDataSource数据源控件的分页支持时,就必须采用DataSet的方式。
设置SqlDataSource数据源控件的DataSourceMode属性为"DataReader",默认为"DataSet".如下图:
页面代码如下:
<form id="form1" runat="server">
<asp:GridView ID="GridView1" DataSourceID="SqlDataSource1" AutoGenerateColumns="False"
runat="server">
<Columns>
<asp:BoundField DataField="TenMostExpensiveProducts" HeaderText="Product" />
<asp:BoundField DataField="UnitPrice" DataFormatString="{0:c}" HeaderText="Price" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:Northwind %>"
SelectCommand="Ten Most Expensive Products"
SelectCommandType="StoredProcedure"
DataSourceMode="DataReader" />
原文转自:http://www.ltesting.net