.NET MVC+ EF+通用存储过程实现增删改功能

   1、控制器实现

         /// <summary>
        /// 增删改 调用存储过程
        /// </summary>
        /// <returns></returns>
        public async Task<ActionResult> AddORDelORUpdate()
        {
            string strUpdateTime =DateTime.Now.ToString();
            SqlParameter[] Param =
               {

                 //new SqlParameter("@UpdateTime", System.Data.SqlDbType.DateTime),
                  new SqlParameter("@UpdateTime", System.Data.SqlDbType.VarChar),
                  new SqlParameter("@rt_code", System.Data.SqlDbType.NVarChar, 20),
                  new SqlParameter("@rt_msg", System.Data.SqlDbType.NVarChar, 200)    //输出一定要定义字符类型长度 以免报错
                };
            if (string.IsNullOrEmpty(strUpdateTime))
            { Param[0].Value = DBNull.Value; }
            else
            { Param[0].Value = strUpdateTime; }

 
            Param[1].Direction = ParameterDirection.Output;
            Param[2].Direction = ParameterDirection.Output;

           

            int numdata = await _DbContext.ExecuteNonQueryAsync("SP_AddDelUpdate", Param);
            string rtcode = Param[1].Value.ToString();
            string rtmessage = Param[2].Value.ToString();




            return AsResult.Success();

        }

 2、存储过程

create PROCEDURE [dbo].[SP_AddDelUpdate] 
    (
    @UpdateTime varchar(50),
    @rt_code varchar(20) output,
    @rt_msg nvarchar(200) output
    )
AS
   BEGIN
  ;
   begin transaction
  begin try  
  --if(@UpdateTime!=null) 
  BEGIN 
  update  TRA_BargainOrder_Test set UpdateTime=@UpdateTime  ;
   
    INSERT INTO TRA_BargainOrder_Test(
                               UserID,
                                CityCode,
                                  UpdateTime,
                                 BargainOrderCode,
                                 CreateTime,
                                 OrderStatus
                                  
                          )
                          VALUES
                              
                          (     3,
                               'SZ',
                                @UpdateTime, 
                              '2018888888888888',
                              GETDATE() ,
                              1                       
                          );
    END;
    commit transaction
    set  @rt_code= '0000';
     set  @rt_msg= '执行成功!';
     return
     end try 
    begin catch
    set  @rt_code= '9999';
     set  @rt_msg= '失败,请稍候再试!';
    rollback transaction
    end catch
END

猜你喜欢

转载自www.cnblogs.com/Warmsunshine/p/9087782.html
今日推荐