ado.net获取存储过程的返回值

  • 来源: 互联网 作者: rocket   2008-03-17/14:32
  • --------------------------------------------
    假设有存储过程如下:
    ---------------------------------------------

    CREATE proc sp_uptmp @tmpName varchar(50),@srcPos varchar(255)
    as

    Begin TRAN
         insert into t_template values(@tmpName,@srcPos)
    COMMIT 

    return isnull(@@identity,0)
    GO


    ------------------------------------------------------------
    在 ado.net 里面获取返回值的方法为(c#):
    ------------------------------------------------------------
       SqlConnection dbconn = new SqlConnection(connStr);
       SqlCommand cmd = new SqlCommand("sp_uptmp",dbconn);
       cmd.CommandType = CommandType.StoredProcedure;

       SqlParameter tmpName = cmd.Parameters.Add("@tmpName",SqlDbType.VarChar);
       SqlParameter srcPos = _cmd.Parameters.Add("@srcPos",SqlDbType.VarChar);
       SqlParameter rtnval = cmd.Parameters.Add("rval",SqlDbType.Int);

       tmpName.Direction = ParameterDirection.Input;
       srcPos.Direction = ParameterDirection.Input;
       rtnval.Direction = ParameterDirection.ReturnValue;

       tmpName.Value = "";
       srcPos.Value = "";
       dbconn.Open();
       cmd.ExecuteNonQuery();
       dbconn.Close();

       tmpid = (int)rtnval.Value;  //此处即为返回值


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多