Sql Server 中的output returnvalue的区别

1:ReturnValue只能返回0,1,-1这样的数据,局限性很大 ,而在存储过程中用OutPut参数,可以返回各种类型的数据,比较灵活方便。

ReturnValue   是用来返回错误码的,output是指存储过程传出参数       例如    :

@Flag   varchar(20)   output   
sql存储过程:
create proc Test
@B varchar(50) output,
@C varchar(50)
as
begin
  declare @A int
  set @B=@C+ 'Return'
  set @A=1000
  return @A
end
c#程序代码:       
 System.Data.SqlClient.SqlConnection conn =  new System.Data.SqlClient.SqlConnection( "server=(local);uid=sa;pwd=sa;database=ServerUForVhost1");
        System.Data.SqlClient.SqlCommand comm =  new System.Data.SqlClient.SqlCommand( "Test", conn);
        comm.CommandType = System.Data.CommandType.StoredProcedure;
         //调用sqlhelper时这样写,单独不行:comm.Parameters.Add(不能addsqlparameter[])
         //SqlParameter[] parameter ={
         //    new System.Data.SqlClient.SqlParameter("@A",System.Data.SqlDbType.Int,4),
         //    new System.Data.SqlClient.SqlParameter("@B",System.Data.SqlDbType.VarChar,50),
         //    new System.Data.SqlClient.SqlParameter("@C",System.Data.SqlDbType.VarChar,50)
         //    };
         //parameter[2].Direction = ParameterDirection.Input;
         //      parameter[0].Direction = ParameterDirection.ReturnValue;
         //      parameter[1].Direction = ParameterDirection.Output;
          comm.Parameters.Add( new System.Data.SqlClient.SqlParameter( "@A", System.Data.SqlDbType.Int, 4));
           comm.Parameters["@A"].Direction = ParameterDirection.ReturnValue;
          comm.Parameters.Add( new System.Data.SqlClient.SqlParameter( "@B", System.Data.SqlDbType.VarChar, 50));
           comm.Parameters["@B"].Direction = ParameterDirection.Output;
          comm.Parameters.Add( new System.Data.SqlClient.SqlParameter( "@C", System.Data.SqlDbType.VarChar, 50));
          comm.Parameters[ "@C"].Value =  "insertmsg";
          conn.Open();
           int i = comm.ExecuteNonQuery();
           string result1 = comm.Parameters[ "@A"].Value.ToString();
           string result2 = comm.Parameters[ "@B"].Value.ToString();
          conn.Close();
结果为: result1=1000;result2=insertmsgResult
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值