本次示例项目使用Dappe1.50.5和Dapper.Contrib1.50.5

数据库执行的脚本检测工具是SQL Server Prifiler

1.使用Where In 实现批量更新

1.1代码如下:

/// <summary>
/// 把多个用户的isvalid置为0
/// </summary>
public void UpdateUsersByWhereInTest()
{
var sql = @"UPDATE dbo.[user] SET isvalid=0 WHERE UserId IN @UserId ;";
var userIdArr = new int[] { 3013, 3012, 3011, 3010 };
var res = Repository.Execute(sql, new { UserId = userIdArr });
Assert.True(res > 0);
}

1.2检测到数据库执行的脚本

exec sp_executesql N'UPDATE dbo.[user]
SET isvalid=0
WHERE UserId IN (@UserId1,@UserId2,@UserId3,@UserId4) ;',
N'@UserId1 int,@UserId2 int,
@UserId3 int,@UserId4 int',
@UserId1=3013,@UserId2=3012,
@UserId3=3011,@UserId4=3010

2.更新多条数据,每一条数据更新的内容可不相同

2.1代码如下

/// <summary>
/// 分别把用户Id是3013的用户名称更新为张三,用户Id是3012的用户名称更新为李四
/// </summary>
[Fact]
public void UpdateUsersTest()
{
var sql = @"UPDATE dbo.[user] SET UserName=@UserName WHERE UserId = @UserId ;";
var users = new List<User> {
new User { UserId=3013, UserName = "张三", },
new User { UserId =3012, UserName = "李四", },
};
var res = Repository.Execute(sql,users);
Assert.True(res > 0);
}

2.2检测到数据库执行的脚本

生成两条Update脚本执行

exec sp_executesql N'UPDATE dbo.[user]
SET UserName=@UserName
WHERE UserId = @UserId ;',
N'@UserId int,@UserName nvarchar(4000)',
@UserId=3013,@UserName=N'张三' exec sp_executesql N'UPDATE dbo.[user]
SET UserName=@UserName
WHERE UserId = @UserId ;',
N'@UserId int,@UserName nvarchar(4000)',
@UserId=3012,@UserName=N'李四'

示例代码下载地址

最新文章

  1. jq size()与length的区别
  2. HMAC加密的消息摘要码
  3. PHP5.6启动失败
  4. linux echo命令的-n、-e两个参数
  5. python报错ordinal not in range(128)
  6. 支持IE,FireFox,Chrome三大主流浏览器,通过js+Flash方式将table导出Excel文件
  7. virtualBox ubuntu 文件共享
  8. java记事本1.2版
  9. Centos7 利用crontab定时执行任务及配置方法
  10. PHP生成HTML文件, SummerHtml
  11. linux ——shell 脚本
  12. Mysql 数据库复制
  13. numpy总结
  14. [OpenCV-Python] OpenCV 中的图像处理 部分 IV (六)
  15. python day02作业
  16. Python入门-模块2(sys模块、shutil 模块)
  17. springboot maven
  18. 第219天:Angular---过滤器
  19. 用http.get()简单实现网络验证防止客户不给尾款_电脑计算机编程入门教程自学
  20. 【MySQL笔记】用户管理

热门文章

  1. RSA 前段加密 java 后台解密 已调试通过
  2. GC算法基础
  3. js 原型链解密
  4. objec类中方法介绍
  5. feign调用spring clound eureka 注册中心服务
  6. Eclipse环境搭建并且运行wordcount程序
  7. CentOS7设置固定IP
  8. Alibaba FastJson 常用方法使用指南
  9. Tomcat 的 ManagerApp 简单使用
  10. Kali学习笔记5:被动信息收集工具集