SqlCommand command = CreateCommand(ProcName, Param);
command.ExecuteNonQuery();
i_return = (int)command.Parameters["@ReturnValue"].Value;
//strReturn = Convert.ToString(command.Parameters["@return_char"].Value);
close();
return i_return;如上面我怎么样才能获得i_return和strReturn的值

解决方案 »

  1.   

    @ReturnValue 和 @return_char 设置为输出参数
      

  2.   

    当前台调用的时候,ReturnValue  = 1 的时候,我就是显示return_char 的值
      

  3.   

    你要同时取两个值还是根据不同,有可能取一个值,也有可能取另一个值呢。如果是第一种,你要同时取两个值:
    public void Foo( out int i_return, out string s_return ){
       i_return  = XX;//设置相应的值
       s_return  = YY;//设置相应的值
    }//调用:
    int i_return;
    string s_return;
    Foo( out i_return, s_resutn);如果是第二种:
    public object Foo( bool isInt ){
      /*做一些事情*/
      return  isInt ? i_returnvalue : s_returnValue;
    }
      

  4.   

    是取二个值,,但是我的是这样的..
    public int RunProc(string ProcName, SqlParameter[] Param)
            {
                int i_return ;
                SqlCommand command = CreateCommand(ProcName, Param);
                command.ExecuteNonQuery();
                i_return = (int)command.Parameters["@ReturnValue"].Value;
                //strReturn = Convert.ToString(command.Parameters["@return_char"].Value);
                close();
                return i_return;
            }怎么返回二个值罗
      

  5.   

    不能返回二个值。你可以多传入一个参数来解决这个问题啊。或者你声明一种类型叫IntStringPair,返回这种类型的值。方法不止一个,写代码经常要绕一下的。你可以返回一个,在参数获得一个。public int RunProc(string ProcName, SqlParameter[] Param, out string strReturn)
            {
                int i_return ;
                SqlCommand command = CreateCommand(ProcName, Param);
                command.ExecuteNonQuery();
                i_return = (int)command.Parameters["@ReturnValue"].Value;
                strReturn = Convert.ToString(command.Parameters["@return_char"].Value);
                close();
                return i_return;
            } //调用的时候就:
    string s ;
    int i = RunProc( procName, param, out s );
    //这不是一样的效果么?