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

来源:互联网 发布:网络有利有弊 英语翻译 编辑:程序博客网 时间:2024/05/22 16:07
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

   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;  //此处即为返回值