none
cmd.Parameters怎么得到存储过程的返回值 RRS feed

  • 问题

  • cmd.Parameters[......]怎么得到存储过程的返回值?
    存储过程里面是:
      if ......
               return 1
      else
               return 0
     
    2009年10月24日 3:52

答案

  • 这样写是不正确的

    using(SqlConnection conn = new SqlConnection(@"server=XXY\SQLEXPRESS;database=X;Integrated Security=SSPI"))
    {
        SqlCommand comm = new SqlCommand("sp_OutputParameterSample");
        comm.Connection = conn;
        comm.CommandType = System.Data.CommandType.StoredProcedure;
        comm.Parameters.Add("@OutputParameter", SqlDbType.Int);
        comm.Parameters[0].Direction = ParameterDirection.Output;
        conn.Open();
        comm.ExecuteNonQuery();
        int ret = (int)comm.Parameters[0].Value;
    }

    -- 存储过程
    IF NOT OBJECT_ID('sp_OutputParameterSample') IS NULL
    DROP PROC  sp_OutputParameterSample
    GO

    CREATE PROC sp_OutputParameterSample
    (
    @OutputParameter INT OUTPUT
    )
    AS BEGIN
       SET @OutputParameter = 99
    END

    知识改变命运,奋斗成就人生!
    • 已标记为答案 KeFang Chen 2009年10月26日 2:10
    2009年10月24日 4:10
    版主
  • http://www.5d.cn/Tutorial/webdevelop/.net/200412/1960.html
    ASP.NET中如何调用存储过程

    这个例子对各种返回值进行了示例

    【孟子E章】
    • 已标记为答案 KeFang Chen 2009年10月26日 2:10
    2009年10月24日 6:35
    版主

全部回复

  • 这样写是不正确的

    using(SqlConnection conn = new SqlConnection(@"server=XXY\SQLEXPRESS;database=X;Integrated Security=SSPI"))
    {
        SqlCommand comm = new SqlCommand("sp_OutputParameterSample");
        comm.Connection = conn;
        comm.CommandType = System.Data.CommandType.StoredProcedure;
        comm.Parameters.Add("@OutputParameter", SqlDbType.Int);
        comm.Parameters[0].Direction = ParameterDirection.Output;
        conn.Open();
        comm.ExecuteNonQuery();
        int ret = (int)comm.Parameters[0].Value;
    }

    -- 存储过程
    IF NOT OBJECT_ID('sp_OutputParameterSample') IS NULL
    DROP PROC  sp_OutputParameterSample
    GO

    CREATE PROC sp_OutputParameterSample
    (
    @OutputParameter INT OUTPUT
    )
    AS BEGIN
       SET @OutputParameter = 99
    END

    知识改变命运,奋斗成就人生!
    • 已标记为答案 KeFang Chen 2009年10月26日 2:10
    2009年10月24日 4:10
    版主
  • http://www.5d.cn/Tutorial/webdevelop/.net/200412/1960.html
    ASP.NET中如何调用存储过程

    这个例子对各种返回值进行了示例

    【孟子E章】
    • 已标记为答案 KeFang Chen 2009年10月26日 2:10
    2009年10月24日 6:35
    版主