asp.net学习之再论sqlDataSource 1

    本节从上一节没有阐述的几个方面,再讨论一下SqlDataSource的用法及注意的事项。
   
上一节的链接地址如下:http://www.cnblogs.com/shipfi/archive/2009/10/15/1584093.html

1. SqlDataSource的参数方向(Parameters Direction)


    SqlDataSource
的参数可以设置方向,默认值为INPUT。如果参数为INPUT,是无法从参数取回任何返回值的,如果要调用的存储过程有返回值时,必须设置参数具有Output方向。
   
参数包括了四个方向:
      ● Input :
参数仅能输入
      ● InputOutput
:参数可同时输入或输出
      ● Output
:参数仅能输出
      ● ReturenValue:
表示参数为存储过程、内置功能或使用定义函数等返回的操作。[注意是返回值]
   
参数方向在aspx页面中的设定就不讲了,设定相应的Direction属性就行了,比较简单,如果在程序中动态设定的话,使用以下代码就可以了:

sqlDatasource.SelectCommand = "select * from Porducts where ProductName=@productName";
QueryStringParameter paramProduct = 
new QueryStringParameter("ProductName",TypeCode.String,"ProductName");
paramProduct.Direction = ParameterDirection.Input;



   
1: 演示如何使用存储过程,并且带Output参数的使用

create proc dawnSP_SelectPClass
(
   
@return_row int output,       --返回行数
    @pclass_parent_id int =1   --父目录id
)
as
begin
   
if @pclass_parent_id=-1
       
select * from product_class;
   
else
       
select * from product_class where product_class_parent=@pclass_parent_id;
   
set @return_row = @@rowcount;
   
return 0;
end
--测试一下存储过程是否OK
declare @ret_row int
exec dawnSP_SelectPClass @ret_row output,-1--@ret_row后面一定要加output关键字
select @ret_row;

 

1 <!-- 在页面中使用存储过程 –>
2 <script runat=”server”>
3 protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
4 {
5     // 存储过程中的第一个参数就是Output参数,所以取e.Command.Parameters[0]
6     TextBox1.Text = e.Command.Parameters[0].Value.ToString();  
7 }
8 </script>
9 
10 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  <!-- 存储过程返回的return_row将显示在这个TextBox -->
11 <asp:SqlDataSource ID="SqlDataSource1" runat="server"
12             ConnectionString="<%$ ConnectionStrings:DawnEnterpriseDBConnectionString %>"
13             SelectCommand="dawnSP_SelectPClass" SelectCommandType="StoredProcedure"
14             onselected="SqlDataSource1_Selected">   <!-- 需要通过OnSelected事件、把return_row参数的值取出来 -->
15        <SelectParameters>
16             <asp:Parameter Name="return_row" DefaultValue="0" DbType="Int32" Direction="Output" />
17             <asp:QueryStringParameter DefaultValue="-1" Name="pclass_parent_id" DbType="Int32"
18                     QueryStringField="p_classid" Direction="Input" />
19              <!-- 注:ParameterQueryStringParameterName一定要和存储过程中的参数名相匹配,否则会提示参数设定不正确 -->
20        </SelectParameters>
21 </asp:SqlDataSource>

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值