直接用sqlcommand的Executescale方法
  
*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

解决方案 »

  1.   

    好像不行
    sReturn =Convert.ToString(sda.SelectCommand.ExecuteScalar());
    返回值为NULL阿
      

  2.   

    应该先将你的sda和con关闭了,再获取存储过程返回值,否则将获取不到存储过程返回值.
    见MSDN:
    1、Close 方法将填写输出参数的值、返回值和 RecordsAffected,从而增加了关闭用于处理大型或复杂的查询的 SqlDataReader 所用的时间。如果返回值和查询影响的记录的数量不重要,则可以在调用 Close 方法前调用关联的 SqlCommand 对象的 Cancel 方法,从而减少关闭 SqlDataReader 所需的时间。2、关闭 DataReader
    每次使用完 DataReader 对象后都应调用 Close 方法。如果 Command 包含输出参数或返回值,那么在 DataReader 关闭之前,将无法访问这些输出参数或返回值。请注意,当 DataReader 打开时,该 DataReader 将以独占方式使用 Connection。在初始 DataReader 关闭之前,将无法对 Connection 执行任何命令(包括创建另一个 DataReader)。
      

  3.   

    @field output //是输出参数
    ReturnValue   //是返回值
    这两个应该不匹配