zoukankan      html  css  js  c++  java
  • .net Dapper 实践系列(6) ---事务删除(layui+mvc5+Dapper+MySQL)

    写在前面


    上一小节,总结了事务多表更新的两种方法。一个是只更新原来的数据,一个是先删除原来的数据再往里面添加新的数据。而这一小节,说的是事务的多表删除。

    实现步骤


    1.在BorrowBook控制器中 创建Del方法 执行删除单表记录

    /// <summary>
    /// 删除单表数据
    /// </summary>
    /// <param name="Id">参数Id</param>
    /// <returns>成功返回1,失败返回0</returns>
    public int Del(string Id)
    {
          int result = 0;
          string sql_del = "delete from sys_Borrow_Book  where book_Id=?book_Id";
          //动态参数
          DynamicParameters pr = new DynamicParameters();
          pr.Add("?book_Id", Id);
          result = DapperDBContext.Execute(sql_del, pr);
          return result;
    }
    

    2.在BorrowBook控制器中 创建Dels方法 执行删除多表记录

    /// <summary>
    /// 删除多表数据
    /// </summary>
    /// <param name="Id">参数Id</param>
    /// <returns>成功返回1,失败返回0</returns>
    public int Dels(string Id)
    {
          int result = 0;
          string sql_del = "delete from sys_Borrow_Book  where book_Type_id=?id";
          string sql_dels = "delete from sys_Book_Type where book_Type_id=?id";
          var para = new List<Tuple<string, object>>();
          Tuple<string, object> temp1;
          //动态参数
          DynamicParameters pr = new DynamicParameters();
          pr.Add("?book_Id", Id);
          temp1 = new Tuple<string, object>(sql_del, pr);
          para.Add(temp1);
          temp1 = new Tuple<string, object>(sql_dels, pr);
          para.Add(temp1);
          bool boolresult = DapperDBContext.ExecuteTransaction(para).Item1;
          if (boolresult == true) { result = 1; }
          return result;
    }
    

    3.在View视图中 加载数据Load方法拼接字符串最后

    /*删除*/
    $(".btndel").click(function () {
          var Id = $(this).attr("id");
          if (Id != null) {
              layer.confirm('是否确定删除?', {
              btn: ['确定', '取消'] //按钮
          }, function () {
           $.get("../BorrowBook/Del?Id=" + Id, function (msg) {
              if (msg > 0) { layer.msg("删除成功!", { icon: 1 }); Load(); }
              else { layer.msg("删除失败!", { icon: 2 }); return; }
              });
           });
          }
          else { layer.msg("未选择删除记录", { icon: 3 }); return;}
    });
    
    

    写在最后


    至此,整个项目的搭建和功能的已经全部实现。
    注意:
    此次的实践,只在开发环境中测试过。没有认真的在生产环境中测试过。所以,还会有存在不少的问题。仅供实现思路的参考。

  • 相关阅读:
    (转)SpringBoot使用@Value给静态变量注入
    关于Oracle to_date函数的高级用法
    Nginx实践篇(5)- Nginx代理服务
    SpringBoot @Autowired中注入静态方法或者静态变量
    SpringBoot MAVEN编译报错Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:
    SpringBoot项目中禁用HttpClient那些嘈杂的日志
    生成SQL Server数据字典
    SqlServer 查看最近执行过的语句
    为二级域名注册ssl证书,并强制使用https对http进行跳转
    CentOS 7 配置nginx并默认强制使用https对http进行跳转
  • 原文地址:https://www.cnblogs.com/ZengJiaLin/p/11346157.html
Copyright © 2011-2022 走看看