编辑
2025-09-22
C#
00

目录

摘要
正文

摘要

在使用 C# 结合 SqlSugar 更新数据库中的数据时,可以通过几种不同的方法来实现。下面将介绍如何使用 SqlSugar 更新数据的一种常见方式,包括单条更新,批量更新。

正文

根据实体对象更新

C#
var user = new wms_user { id = 1586977355308601346, name = "李四2", dept = "IT2", duty = "程序员2", hire_date = DateTime.Parse("2022-11-1"), term_date = null }; var ret= Db.Updateable(user).ExecuteCommand();
函数说明
ExecuteCommand返回受影响行数 , update where 如果没找到那么就会返回 0
ExecuteCommandHasChange返回bool  ,等同于  bool isChange= ExecuteCommand()>0

批量更新

C#
List<wms_user> users = new List<wms_user>(); var user1 = new wms_user { id = 1586979335129141248, name = "王五", dept = "电气", duty = "程序员", hire_date = DateTime.Parse("2021-09-1"), term_date = null }; var user2 = new wms_user { id = 1586977355308601346, name = "李四", dept = "IT", duty = "程序员", hire_date = DateTime.Parse("2012-09-1"), term_date = null }; users.Add(user1); users.Add(user2); var ret= Db.Updateable(users).ExecuteCommand();

不更新某列

C#
var user1 = new wms_user { id = 1586979335129141248, name = "王五", dept = "电气1", duty = "工程师", hire_date = DateTime.Parse("2021-12-23"), term_date = null }; var ret= Db.Updateable(user1).IgnoreColumns(it=>new {it.dept,it.hire_date }).ExecuteCommand();

只更新某列

C#
var user1 = new wms_user { id = 1586979335129141248, name = "王五A", dept = "电气1", duty = "工程师", hire_date = DateTime.Parse("2021-12-23"), term_date = null }; var ret= Db.Updateable(user1).UpdateColumns(it => new {it.name,it.hire_date}).ExecuteCommand();

NULL列不更新

C#
var ret= Db.Updateable(user1).IgnoreColumns(ignoreAllNullColumns:true).ExecuteCommand();

whereColumns子句更新

根据指定列更新

C#
var user1 = new wms_user { id = 1586979335129141248, name = "王五A", dept = "电气1", duty = "工程师2", hire_date = DateTime.Parse("2020-12-23"), term_date = null }; var ret= Db.Updateable(user1).WhereColumns(x=>x.name).ExecuteCommand();

更新where条件

C#
var user1 = new wms_user { id = 1586979335129141248, name = "王五A", dept = "电气12", duty = "工程师21", hire_date = DateTime.Parse("2020-01-23"), term_date = null }; var ret= Db.Updateable(user1).Where(x=>x.name== "王五A").ExecuteCommand();

大批量更新

C#
List<wms_user> users = new List<wms_user>(); var user1 = new wms_user { id = 1586979335129141248, name = "王五", dept = "IT", duty = "程序员", hire_date = DateTime.Parse("2021-09-1"), term_date = null }; var user2 = new wms_user { id = 1586977355308601346, name = "李四", dept = "IT", duty = "程序员", hire_date = DateTime.Parse("2012-09-1"), term_date = null }; users.Add(user1); users.Add(user2); var ret = Db.Fastest<wms_user>().BulkUpdate(users);

根据表达式更新

C#
var ret = Db.Updateable<wms_user>() .SetColumns(it => new wms_user() { name = "张飞" }) .Where(it => it.id == 1586979335129141248) .ExecuteCommand();

用SetColumns可以叠加更新

C#
var ret = Db.Updateable<wms_user>() .SetColumns(it =>it.name=="TOM") .SetColumns(it=>it.dept=="演员") .Where(it => it.id == 1586979335129141248) .ExecuteCommand();

根据字典更新

C#
var dc = new Dictionary<string, object>(); dc.Add("id", 1586977355308601346); dc.Add("name", "张飞"); dc.Add("dept", "IT"); dc.Add("duty", "程序员"); dc.Add("hire_date", DateTime.Now.AddDays(-100)); var ret = Db.Updateable(dc).AS("wms_user").WhereColumns("id").ExecuteCommand();

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!