C#使用SqlSugar操作MySQL数据库实现简单的增删改查

📘公众号「DotNet学习交流」,分享学习DotNet的点滴。

SqlSugar简介

SqlSugar 是一款 老牌 .NET 开源多库架构ORM框架(EF Core单库架构),由果糖大数据科技团队

维护和更新 ,开箱即用最易上手的.NET ORM框架 。生态圈丰富,目前开源生态仅次于EF Core,但是在需要多库兼容的项目或产品中更加偏爱SqlSugar。

官网:SqlSugar .Net ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网 (donet5.com)

MySQL简介

MySQL 是一个开源的关系型数据库管理系统(RDBMS),它是一种流行的数据库管理系统,广泛用于开发各种类型的应用程序,从小型网站到大型企业级应用,以及嵌入式系统等。

官网:MySQL

基础用法示例

打开NuGet解决方案

所用.NET框架如果是.NET Framework则选择SqlSugar

所用.NET框架如果是.NET Core则选择SqlSugarCore

本示例使用的是.NET 6,因此选择安装SqlSugarCore

为项目安装SqlSugarCore

数据库中Student表的设计如下所示:

id为主键并设置为自增

项目右键------添加------类

新建Student类代码如下所示:

csharp 复制代码
    class Student
    {
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public int Id { get; set; }
        public string? Name { get; set; }
        public int Age { get; set; }
        public string? Home { get; set; }
    }

在Id属性上加[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]是因为在数据库中Id是主键并且自增,需要与数据库中一致。

连接到MySQL数据库

ini 复制代码
        //SqlSugar连接到MySQL数据库
        SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
        {
            DbType = SqlSugar.DbType.MySql,
            ConnectionString = "你的MySQL连接字符串",
            IsAutoCloseConnection = true
        });

为了便于演示,在窗体上添加四个按钮,分别为插入、查询、修改、删除按钮,如下图所示:

插入功能的演示

插入可以插入单条和多条

单条插入示例

ini 复制代码
 private void button1_Click(object sender, EventArgs e)
 {
            Student student = new Student();
            student.Name = "小明";
            student.Age = 20;
            student.Home = "湖北武汉";
            db.Insertable(student).ExecuteCommand(); 
 }

点击之后,查看数据库,如下图所示:

已成功插入

多条插入示例

ini 复制代码
 private void button1_Click(object sender, EventArgs e)
 {
            List<Student> students = new List<Student>();
            students.Add(new Student() { Name = "小红", Age = 25, Home = "福建福州"});
            students.Add(new Student() { Name = "小钢", Age = 25, Home = "福建厦门" });
            students.Add(new Student() { Name = "小王", Age = 25, Home = "福建泉州" });
            students.Add(new Student() { Name = "小绿", Age = 25, Home = "江西南昌" });
            students.Add(new Student() { Name = "小吴", Age = 25, Home = "湖北襄阳" });
​
            db.Insertable(students).ExecuteCommand(); 
  }

点击之后,查看数据库,如下图所示:

成功插入了多条数据

查询功能的演示

查询表中所有数据

ini 复制代码
 var list = db.Queryable<Student>().ToList();

运行结果如下图所示:

条件查询,以年龄大于20岁为例

ini 复制代码
db.Queryable<Student>().Where(it => it.Age > 20).ToList();

运行结果如下图所示:

查单条

ini 复制代码
 var single = db.Queryable<Student>().Single(it => it.Id == 1);

运行结果如下图所示:

查字段,以Name为例

ini 复制代码
var list3 = db.Queryable<Student>().Select(it => it.Name).ToList(); 

运行结果如下图所示:

修改功能的演示

以修改id=3的学生的home为"广东珠海"为例

ini 复制代码
            var single = db.Queryable<Student>().Single(it => it.Id == 3);
            single.Home = "广东珠海";
            db.Updateable(single).ExecuteCommand();

点击之后,查看数据库,如下图所示:

删除功能的演示

条件删除,以删除id=1为例

ini 复制代码
  db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();

根据主键数组删除,以删除id=2和3为例

scss 复制代码
  db.Deleteable<Student>().In(new int[] {2, 3}).ExecuteCommand();

点击之后,查看数据库,如下图所示:

总结

本文简单介绍了C#使用SqlSugar操作MySQL数据库实现简单的增删改查。

相关推荐
武藤一雄1 小时前
C# 设计模式大全(第一弹|7种)
microsoft·设计模式·微软·c#·.net·.netcore
格林威2 小时前
Baumer相机锂电池极片裁切毛刺检测:防止内部短路的 5 个核心方法,附 OpenCV+Halcon 实战代码!
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·视觉检测
向上的车轮3 小时前
熟悉C#如何转TypeScript——SDK与包引用
开发语言·typescript·c#
CSharp精选营5 小时前
Dispose 不释放?C# 资源泄漏的 3 种隐蔽场景排查
c#·资源泄漏
unicrom_深圳市由你创科技6 小时前
LabVIEW和C#在工业控制中的应用差异是什么?
fpga开发·c#·labview
唐青枫7 小时前
C#.NET Consul + Steeltoe 深入解析:服务注册发现、健康检查与微服务接入
c#·.net
DowneyJoy7 小时前
【Unity3D补充知识点】常用数据结构分析-集合(List<T>)
数据结构·unity·c#·list
格林威8 小时前
Baumer相机铝型材表面划伤长度测量:实现损伤量化评估的 5 个关键技术,附 OpenCV+Halcon 实战代码!
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·工业相机
DowneyJoy8 小时前
【Unity3D补充知识点】常用数据结构分析-数组(Array)
数据结构·unity·c#
格林威8 小时前
Baumer相机铝箔表面针孔检测:提升包装阻隔性的 7 个核心策略,附 OpenCV+Halcon 实战代码!
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·工业相机