在 存储过程中 @SQDH   程序的参数
@SQDH VARCHAR(12) output
SET @SQDH = '3'程序中是这样定义的:
commandParameters[0].Direction = ParameterDirection.Output;
数组0 就是对应的@SQDH
可是我总是得不到返回的值
是不是我哪里设置还有问题
请教!!!

解决方案 »

  1.   

    int ID_Out
    ID_Out = System.Convert.ToInt32(myCommand.Parameters["@D_Out"].Value);
      

  2.   

    没问题  执行成功SqlHelper.ExecuteNonQuery(SqlHelper.connString,CommandType.StoredProcedure,sqlText,commandParameters);
    string temp = commandParameters[0].Value.ToString() 直接这么获取值有问题吗
      

  3.   

    parameterid1.Direction = ParameterDirection.Output;
    parameterid1.Value= ParameterDirection.ReturnValue;
    oSqlCmd.Parameters.Add(parameterid1);
      

  4.   

    string temp = parameterid1.Value.tostring();
      

  5.   

    楼上的不对 我把我的存储过程贴出来大家看一下
    PROCEDURE dbo.pSQDAdd 
    @SQDH VARCHAR(12) output,@SQDWDM VARCHAR(8) ,@SQDWMC VARCHAR(40) ,@FHLB VARCHAR(30) ,
    @JSFS VARCHAR(30) ,@SQR VARCHAR(10)
    ,@SQRQ DATETIME ,@CZLX BIT  ,@CKDM VARCHAR(8) ,@QCLX INT ,@LCBS INT,
    @BZ VARCHAR(200) ,@CXS INT 
    AS
    BEGINdeclare @temp varchar(12)
    declare @counts varchar(8)
    declare @max varchar(12)
    select @temp=max(s_sqdh) from t_shenqdxj where substring(s_sqdh,0,charindex('_',s_sqdh))=@SQDWDM
    set @counts = substring(@temp,charindex('_',@temp)+1,3) +1if (len(@counts)=1)
    set @counts = '00'+@counts
    if (len(@counts)=2)
    set @counts = '0'+@countsset @max = @SQDWDM+'_'+@counts
    set @SQDH = '3'//这里用常量代替都不行
    insert into ....
    END
      

  6.   

    用的是 petshop的SqlHelper?看看里面调用后参数是不是被删除掉了?
      

  7.   

    我自己作又了底层的操作 没用SqlHelper 也是不行 在存储过程中该参数数据 就被清空了 没有数据返回 难道是我传值有问题?
      

  8.   

    最后面加上 Select @SQDH  试下。
      

  9.   

    string temp = parameterid1.Value.tostring();------------------------------------------
    用这一句试一下..调试一下..看看那里错了..
      

  10.   

    同样的问题,我在同一个过程中,如果返回int 或是deouble等数据类型都可以得到回传值!但是如果是varvhar类型,死活得不到回传值!--回传采用output!期待答案!