写在前面


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

实现步骤


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;}
});

写在最后


至此,整个项目的搭建和功能的已经全部实现。

注意:

此次的实践,只在开发环境中测试过。没有认真的在生产环境中测试过。所以,还会有存在不少的问题。仅供实现思路的参考。

.net Dapper 实践系列(6) ---事务删除(Layui+Ajax+Dapper+MySQL)的更多相关文章

  1. .net Dapper 实践系列(2) ---事务添加(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 问题描述 解决方法 具体实现 写在前面 前面我们已经搭建好了项目,这一小节我们使用Dapper 中的事务实现一对多的添加操作. 问题描述 在做添加的时候很头疼需要从页面传递一组数据到后 ...

  2. .net Dapper 实践系列(5) ---事务编辑(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 实践步骤 写在前面 上一小节,我们总结了根据Id查询多表数据,最后返回Json对象给前台的例子.接下来,在这一小节我们要实现多表编辑的操作. 实践步骤 因为上一小节以及创建了Edit视 ...

  3. .net Dapper 实践系列(1) ---项目搭建(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 一.前期准备 1.在MySQL创建数据库 2.创建项目 3.安装程序包 4.添加插件 5.添加DbOption文件夹 6.添加实体类 写在前面 学习并实践使用Dapper 这个小型的O ...

  4. .net Dapper 实践系列(4) ---数据查询(Layui+Ajax+Dapper+MySQL)

    写在前面 上一小节,总结了数据显示时,会出现的日期问题.以及如何处理格式化日期.这个小节,主要总结的是使用Dapper 中的QueryMultiple方法依次显示查询多表的数据. 实践步骤 1.在Bo ...

  5. .net Dapper 实践系列(3) ---数据显示(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 产生问题 解决方案 写在前面 上一小节,我们使用Dapper 里事务实现了一对多关系的添加.这一小节,主要记录如何使用Dapper 实现多表的查询显示. 产生问题 在mvc控制器中查询 ...

  6. .net Dapper 学习系列(2) ---Dapper进阶

    目录 写在前面 前期准备 Dapper 单表批量添加 在Dapper 多表查询 在Dapper 调用存储过程 在Dapper 使用QueryMultiple进行多表查询 在Dapper 使用事务进行多 ...

  7. CRL快速开发框架系列教程四(删除数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  8. ASP.NET Web API实践系列04,通过Route等特性设置路由

    ASP.NET Web API路由,简单来说,就是把客户端请求映射到对应的Action上的过程.在"ASP.NET Web API实践系列03,路由模版, 路由惯例, 路由设置"一 ...

  9. .net core实践系列之短信服务-架构设计

    前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...

随机推荐

  1. docker私有仓库操作(搭建、运行、添加、删除)

    目录 运行私有仓库 TIPS: 上传 把镜像放入私有仓库 验证 查看 TIPS: 垃圾回收 问题排查 参考:https://yeasy.gitbooks.io/docker_practice/cont ...

  2. elastic date时区问题解决办法

    之前介绍filter date插件时就谈到时区问题,但是没有说明白.最近在使用range查询时间范围内的数据时出现了数据量不一致的情况.特地了解了下ELK Stack中关于时区的问题. 问题: 使用k ...

  3. shell 脚本中 while 只执行一次

    实例代码 while read line ; do ssh -p20002 $line -o StrictHostKeyChecking=no xxxxxxxxx done < ip.txt w ...

  4. 如何使用Activator.CreateInstance创建一个列表<T>,其中T在运行时是未知的?

    参考网址:https://cloud.tencent.com/developer/ask/185965 using System; using System.Collections.Generic; ...

  5. 前端(4)BOM与DOM

    前端(4)BOM与DOM I/O前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交 ...

  6. python笔试题

    冒泡排序的原理:每次对相邻的两个元素进行比较,若前者大于后者,这将两者的位置交换.第一轮就可以将最大的元素置于列表的最后.几轮循环 冒泡排序的前提条件:有序的列表 import unittest# 冒 ...

  7. django 导出xls文件

    1.同目录下创建file_handle.py文件 file_handle.py import xlwt, datetime from xlwt import * import xlsxwriter # ...

  8. Nginx反向代理服务器的安装与配置

    Nginx反向代理服务器的安装与配置 时间:10月19日 Nginx反向代理有不少需要我们解决的问题,其中有不少问题是基于安装上的问题,在安装完成后的相关调试也让很多人头疼不已.下面就向大家介绍有关于 ...

  9. HTTP协议之chunk,单页应用这样的动态页面,怎么获取Content-Length的办法

    当客户端向服务器请求一个静态页面或者一张图片时,服务器可以很清楚的知道内容大小,然后通过Content-Length消息首部字段告诉客户端需要接收多少数据.但是如果是动态页面等时,服务器是不可能预先知 ...

  10. manjaro 安装 tim 后无法输入中文

    cd /opt/deepinwine/tools sudo chmod 777 run.sh vim run.sh 在一开始的注释下输入 export GTK_IM_MODULE="fcit ...