var result = 0;
var userId = 0;
using (var db = _Sql.Connection)
using (var tran =db.BeginTransaction())
{
var insertUserActionSql = @"INSERT INTO [dbo].[Base_User]
([UserName]
,[Password]
,[PhoneNumber]
,[Email]
,[IsDeleted]
,[CreateDate]
,[CreateUserId]
,[CreateUserName]
,[ModifyDate]
,[ModifyUserId]
,[ModifyUserName])
VALUES
(@UserName
,@Password
,@PhoneNumber
,@Email
,@IsDeleted
,@CreateDate
,@CreateUserId
,@CreateUserName
,@ModifyDate
,@ModifyUserId
,@ModifyUserName); SELECT CAST(SCOPE_IDENTITY() AS BIGINT) AS [UserId] "; //必须这么写才行 不能用@@identity 方式,dapper不支持

var insertUserRoler = @" INSERT INTO [dbo].[Base_UserRole]([UserId],[RoleId]) VALUES(@UserId,@RoleId)";
try
{

userId = db.ExecuteScalar<int>(insertUserActionSql, editViewModel, tran);

result = db.Execute(insertUserRoler, new { UserId = userId, RoleId = editViewModel.RoleId },tran);
tran.Commit();
}
catch (SqlException ex)
{
tran.Rollback();
LogHelper.AddErrorLog("Create", this.GetType(), ex);
return false;
}
catch (Exception ex)
{
tran.Rollback();
LogHelper.AddErrorLog("Create", this.GetType(), ex);
return false;
}
}//end using
return result > 0;

原生dapper中新增用户后根据用户id,在用户角色表中添加关联数据,事务处理的更多相关文章

  1. python实现二叉树的建立以及遍历(递归前序、中序、后序遍历,队栈前序、中序、后序、层次遍历)

    #-*- coding:utf-8 -*- class Node: def __init__(self,data): self.data=data self.lchild=None self.rchi ...

  2. Ubuntu下创建新用户后,不能使用管理员用户下安装的Anaconda

    解决办法: 将管理员用户下Anaconda的安装环境添加到新用户下的环境变量里,具体操作: 系统切换到新用户下: vim .bashrc #添加Anaconda的环境变量 source .bashrc ...

  3. Oracle 中新增字段后patch

    begin  ad_zd_table.patch('APPLSYS', 'CUX_3_GL_FARMER_BALANCE'); end ;

  4. js中全局变量修改后的值不生效【jsp页面中各个js中内容的加载顺序】

    一个老项目中,一个jsp文件中有很多个js文件, 现在要在页面上的一个地方判断一个状态,因为一直找不到原来是在哪里修改的那个状态,所以决定不找了,而是在比较靠前引入的一个js中定义一个全局变量,然后在 ...

  5. c/c++ 用前序和中序,或者中序和后序,创建二叉树

    c/c++ 用前序和中序,或者中序和后序,创建二叉树 用前序和中序创建二叉树 //用没有结束标记的char*, clr为前序,lcr为中序来创建树 //前序的第一个字符一定是root节点,然后去中序字 ...

  6. 034-openstack中虚拟机启动后主机名设置问题

    openstack中虚拟机启动后主机名设置问题,在centos7中设置hostname后怎么都是原来的hostname,根本无效. 方法一: 在centos7中除了修改hosts文件和network文 ...

  7. 在Linux中新增与删除用户可以使用命令:Useradd

    在Linux中新增与删除用户可以使用命令:Useradd 我们先使用man命令理解一下Useradd的用法 新增与删除用户操作需要先获取高级用户权限 输入命令:sudo -i 确定后输入高级用户密码 ...

  8. Sqlserver------SQLServer2008R2中新增用户并设定表的访问权限

    在进行项目对接时,有时候处于系统安全性考虑,我们需要设置数据库的访问权限,这个时候,我们可以新增一个用户,然后设定用户的访问权限,具体步骤如下: 1,  新建登录对象 2,  点击用户映射 3,  操 ...

  9. 【转】【Android测试技巧】01. root后adb shell默认不是root用户时,如何将文件放入手机系统中

    http://blog.csdn.net/wirelessqa/article/details/8624208 有些机器root后通过adb shell 后,默认不是root用户,需要输入 su才能切 ...

随机推荐

  1. 转(static final 和final的区别)

    学习java的时候常常会被修饰符搞糊涂,这里总结下static final和final的区别. 1.static 强调只有一份,final 说明是一个常量,final定义的基本类型的值是不可改变的,但 ...

  2. Java 基础知识点滴(1)

    1. ==与equals的区别 ==是用来判断两个变量的值是否相等.要比较两个基本变量或引用变量是否相等,只能用==: equal用来判断两个独立对象里面的内容是否一样. 例子: String s1 ...

  3. Spring资源

    资源 官网:http://spring.io 文档:https://docs.spring.io/spring/docs/current/spring-framework-reference/.htt ...

  4. Django-ORM和MySQL事务及三大范式介绍

    Django中操作操作数据库这里需要改一个数据: 模型层:就是与跟数据库打交道 ORM查询: 一.单表操作必知必会13条: orm默认都是惰性查询: 1.all() 查询所有 2.filter() 筛 ...

  5. 2019春Python程序设计测试(20190604--20190604)

    1-1 在Python 3.x中可以使用中文作为变量名. (2分) T         F 1-2 Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型.(2分) T     ...

  6. re.compile 函数

    re.compile 函数 compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用. 语法格式为: re.com ...

  7. H5+JAVA的文件上传,断点续传

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  8. Springboot 注册拦截器

    拦截器 创建myInterceptor类 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSer ...

  9. ABP .net Core MQTT+signalr通讯

    abp版本: 4.3.0.0 .net core 版本 2.2 1.Mqtt 1.1 添加程序集:M2MqttDotnetCore(差点以为没有.net core 的) 2.2 实现代码:抄了个单例模 ...

  10. Class constructor FileManager cannot be invoked without 'new' in undefined (line undefined, column undefined)

    解决办法: 1.删除package.json属性devDependencies的 less 和 less-loader ; 2.重新安装 npm i less less-loader --save-d ...