快速业务通道

ASP.NET 2.0数据教程之四十八:在SqlDataSource中使用参数化查询

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
引了。

第三步:创建并使用参数化存储过程

存储过程可以拥有一组输入参数,这些参数可以用在存储过程内部的SQL 语句中。要让SqlDataSource使用带输入参数的存储过程,指定参数值的方法可参 照使用SQL语句时的方法。

为了演示在SqlDataSource中使用存储过程,我 们先在Northwind数据库中创建一个新的名为GetProductsByCategory的存储过程 ,它接受一个名为@CategoryID的参数,返回CategoryID值为@CategoryID的产品 的所有列。要创建一个存储过程,先去到服务器浏览器中,并找到NORTHWND.MDF 数据库。(如果你看不到“服务器浏览器”,就到“视图 ”菜单中选择“服务器浏览器”选项即可。)

在 NORTHWND.MDF数据库中,右键单击“存储过程”文件夹,选择“ 添加新存储过程”,并输入以下代码:

1CREATE PROCEDURE dbo.GetProductsByCategory
2(
3  @CategoryID int
4)
5AS
6
7SELECT *
8FROM Products
9WHERE CategoryID = @CategoryID

点击“保存”按钮(或直接按Ctrl+S) 以保存此存储过程。你可以在“存储过程”文件夹中右键单击这个存 储过程,并选择“执行”以进行测试。它会提示要你提供这个存储过 程的参数(这里是@CategoryID),然后相应的记录就会显示在“输入 ”窗口中了。(译者注:这里还不错,虽然类似Oracle的那个plus,不过VS 在排版方面好看多了。)

ASP.NET 2.0数据教程之四十八:在SqlDataSource中使用参数化查询

图九:存储过程GetProductsByCategory以@CategoryID值为1执行后的 结果

我们使用这个存储过程来在GridView中显示所有分类为饮料(译者注 :Beverages)的产品。先往页面上添加一个新的GridView,并绑定一个新的名为 BeverageProductsDataSource的SqlDataSource。接着,我们来到“指定一 个自定义SQL语句或存储过程”页,选择“存储过程”单选框, 并在下拉列表中选中GetProductsByCategory存储过程。

ASP.NET 2.0数据教程之四十八:在SqlDataSource中使用参数化查询

图十:在下拉列表中选中GetProductsByCategory存储过程

由于 这个存储过程接受一个输入参数(@CategoryID),点击“下一步”将 提示我们需要指定这个参数的值的来源。饮料(译者注:Beverages)的 CategoryID为1,所以我们在“默认值”输入框中填入1,并确保 “参数来源”下拉列表选中了“无”。

ASP.NET 2.0数据教程之四十八:在SqlDataSource中使用参数化查询

图十一:使用1作为硬编码的值来返回饮料类的产品

如下面的声 明标记代码所展示的那样,当使用一个存储过程时,SqlDataSource的 SelectCommand属性被设置成该存储过程的名字,且SelectCommandType属性被设 置为StoredProcedure,这样就表明SelectCommand是一个存储过程名字而不是一 个SQL语句。

1<asp:SqlDataSource ID="BeverageProductsDataSource" runat="server"
2  ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
3   SelectCommand="GetProductsByCategory" SelectCommandType="StoredProcedure">
4   <SelectParameters>
5    <asp:Parameter DefaultValue="1" Name="CategoryID" Type="Int32" />
6  </SelectParameters>
7</asp:SqlDataSource>

在浏览器中试试这个页面。只有 那些属于饮料类的产品显示出来了,由于存储过程GetProductsByCategory返回了 Products表的所有列,所以这里也列出了各产品的所有字段。当然,我们也可以 在GridView中,通过其“编辑列”(译者注:Edit Columns)来限制 或自定义需要显示的字段。

ASP.NET 2.0数据教程之四十八:在SqlDataSource中使用参数化查询

图十二:显示了所有的饮料

第四步:通过编程的方式调用 SqlDataSource的Select()方法

在上一

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号