.net Dapper 实践系列(6) ---事务删除(Layui+Ajax+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;}
});
写在最后
至此,整个项目的搭建和功能的已经全部实现。
注意:
此次的实践,只在开发环境中测试过。没有认真的在生产环境中测试过。所以,还会有存在不少的问题。仅供实现思路的参考。
.net Dapper 实践系列(6) ---事务删除(Layui+Ajax+Dapper+MySQL)的更多相关文章
- .net Dapper 实践系列(2) ---事务添加(Layui+Ajax+Dapper+MySQL)
目录 写在前面 问题描述 解决方法 具体实现 写在前面 前面我们已经搭建好了项目,这一小节我们使用Dapper 中的事务实现一对多的添加操作. 问题描述 在做添加的时候很头疼需要从页面传递一组数据到后 ...
- .net Dapper 实践系列(5) ---事务编辑(Layui+Ajax+Dapper+MySQL)
目录 写在前面 实践步骤 写在前面 上一小节,我们总结了根据Id查询多表数据,最后返回Json对象给前台的例子.接下来,在这一小节我们要实现多表编辑的操作. 实践步骤 因为上一小节以及创建了Edit视 ...
- .net Dapper 实践系列(1) ---项目搭建(Layui+Ajax+Dapper+MySQL)
目录 写在前面 一.前期准备 1.在MySQL创建数据库 2.创建项目 3.安装程序包 4.添加插件 5.添加DbOption文件夹 6.添加实体类 写在前面 学习并实践使用Dapper 这个小型的O ...
- .net Dapper 实践系列(4) ---数据查询(Layui+Ajax+Dapper+MySQL)
写在前面 上一小节,总结了数据显示时,会出现的日期问题.以及如何处理格式化日期.这个小节,主要总结的是使用Dapper 中的QueryMultiple方法依次显示查询多表的数据. 实践步骤 1.在Bo ...
- .net Dapper 实践系列(3) ---数据显示(Layui+Ajax+Dapper+MySQL)
目录 写在前面 产生问题 解决方案 写在前面 上一小节,我们使用Dapper 里事务实现了一对多关系的添加.这一小节,主要记录如何使用Dapper 实现多表的查询显示. 产生问题 在mvc控制器中查询 ...
- .net Dapper 学习系列(2) ---Dapper进阶
目录 写在前面 前期准备 Dapper 单表批量添加 在Dapper 多表查询 在Dapper 调用存储过程 在Dapper 使用QueryMultiple进行多表查询 在Dapper 使用事务进行多 ...
- CRL快速开发框架系列教程四(删除数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- ASP.NET Web API实践系列04,通过Route等特性设置路由
ASP.NET Web API路由,简单来说,就是把客户端请求映射到对应的Action上的过程.在"ASP.NET Web API实践系列03,路由模版, 路由惯例, 路由设置"一 ...
- .net core实践系列之短信服务-架构设计
前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...
随机推荐
- Java的自动拆装箱与Integer的缓存机制
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10832303.html 一:基本类型与包装类型 我们知道,Java有8大基本数据类型,4整2浮1符1 ...
- Nginx 反向代理功能-动静分离
Nginx 反向代理功能-动静分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- 五、Xpath与lxml类库
什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...
- linux之shell脚本学习(一)
#!/bin/bash echo 'hello' your_name='longxiong' echo $your_name echo ${your_name} for i in `ls /opt`; ...
- 织梦dedecms后台文件media_add.php任意上传漏洞解决办法
织梦在安装到阿里云服务器后阿里云后台会提示media_add.php后台文件任意上传漏洞,引起的文件是后台管理目录下的media_add.php文件,下面跟大家分享一下这个漏洞的修复方法: 首先找到并 ...
- centos安装安全狗5步就能完成
安全狗是为服务器开发的一款服务器管理软件,客户的服务器是centos 64位,我们就来看看如何安装吧.首先必须得有root账号权限,不然下面的步骤可能都无法执行.随ytkah一起来操作吧 1.下载安全 ...
- C++中typedef和define的区别
typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...
- 【Mybatis】拼接表名
- SQL Server 默认跟踪(Trace)捕获事件详解
SQL Server 默认跟踪 -- 捕获事件详解 哪些具体事件默认跟踪文件能够捕获到? --returns full list of events SELECT * FROM sys.trace_e ...
- webpack中的hash、chunkhash、contenthash区别
hash一般是结合CDN缓存来使用,通过webpack构建之后,生成对应文件名自动带上对应的MD5值.如果文件内容改变的话,那么对应文件哈希值也会改变,对应的HTML引用的URL地址也会改变,触发CD ...