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类代码如下所示:
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数据库
//SqlSugar连接到MySQL数据库
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
DbType = SqlSugar.DbType.MySql,
ConnectionString = "你的MySQL连接字符串",
IsAutoCloseConnection = true
});
为了便于演示,在窗体上添加四个按钮,分别为插入、查询、修改、删除按钮,如下图所示:

插入功能的演示
插入可以插入单条和多条
单条插入示例
private void button1_Click(object sender, EventArgs e)
{
Student student = new Student();
student.Name = "小明";
student.Age = 20;
student.Home = "湖北武汉";
db.Insertable(student).ExecuteCommand();
}
点击之后,查看数据库,如下图所示:

已成功插入
多条插入示例
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();
}
点击之后,查看数据库,如下图所示:

成功插入了多条数据
查询功能的演示
查询表中所有数据
var list = db.Queryable<Student>().ToList();
运行结果如下图所示:

条件查询,以年龄大于20岁为例
db.Queryable<Student>().Where(it => it.Age > 20).ToList();
运行结果如下图所示:

查单条
var single = db.Queryable<Student>().Single(it => it.Id == 1);
运行结果如下图所示:

查字段,以Name为例
var list3 = db.Queryable<Student>().Select(it => it.Name).ToList();
运行结果如下图所示:

修改功能的演示
以修改id=3的学生的home为“广东珠海”为例
var single = db.Queryable<Student>().Single(it => it.Id == 3);
single.Home = "广东珠海";
db.Updateable(single).ExecuteCommand();
点击之后,查看数据库,如下图所示:

删除功能的演示
条件删除,以删除id=1为例
db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();
根据主键数组删除,以删除id=2和3为例
db.Deleteable<Student>().In(new int[] {2, 3}).ExecuteCommand();
点击之后,查看数据库,如下图所示:

总结
本文简单介绍了C#使用SqlSugar操作MySQL数据库实现简单的增删改查。
C#使用SqlSugar操作MySQL数据库实现简单的增删改查的更多相关文章
- 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理
一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...
- Python操作MySQL数据库完成简易的增删改查功能
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶效果展示 三丶数据准备 四丶代码实现 五丶完整代码 一丶项目介绍 1.叙述 博主闲暇之余花了10个小时写的 ...
- MySQL数据库之表的增删改查
目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...
- 数据库中简单的增删改查(CRUD)
一切都是基于数据,而对数据的管理都离不开数据库.最近学到数据库的简单操作,所以写下这篇文章,总结一下学习到的知识.浅陋之处,多多见谅. 补充一下:一直弄不清SQL Server,Mysql ,以及Or ...
- Mysql数据库和表的增删改查以及数据备份&恢复
数据库 查看所有数据库 show databases; 使用数据库 use 数据库名; 查看当前使用的数据库 select database(); 创建数据库 create database 数据库名 ...
- 用JDBC连接 数据库 进行简单的增删改查
JDBC为java的基础.用jdbc实现对数据库的增删改查的功能是程序员的基本要求.本例以mysql为例,首先要使用本例需要添加mysql-connector-java-5.1.7-bin.jar包. ...
- MySQL数据库 | 数据表的增删改查
MySQL数据的增删改查(crud) 本文结构 一.增加 create 二.修改 update 三.查询 retrieve(简单查询,下篇详细展开) 四.删除 delete 首先,创建简单的class ...
- 在python中连接mysql数据库,并进行增删改查
数据库在开发过程中是最常见的,基本上在服务端的编程过程中都会使用到,mysql是较常见的一种数据库,这里介绍python如果连接到数据库中,并对数据库进行增删改查. 安装mysql的python扩展 ...
- Java连接MySQL数据库,并进行增删改查
1.具体的代码实现 import java.sql.*; public class DatabaseService { /** * Create Connection * * @param dbtyp ...
随机推荐
- Unity的IPreprocessShaders:深入解析与实用案例
Unity IPreprocessShaders Unity IPreprocessShaders是Unity引擎中的一个非常有用的功能,它可以让开发者在编译Shader时自定义哪些操作需要被执行.这 ...
- 一文理解GIT的代码冲突
对于GIT,不知道有没有人和我一样,很长时间都是小心翼翼.紧张兮兮,生怕一不小心,自己辛苦写的代码没了. 特别是代码冲突,更是难到我无法理解,每次都要求助于百度,跟着人家的教程一步步解决,下一次还是这 ...
- PE文件结构2(实现PE文件载入)
现在我们已经学完了PE文件格式,但是尚还停留在纸上谈兵的阶段,作为Windows系统上的可执行文件格式,PE文件结构总是和结构体,指针等紧密联系在一起的.理解它的最好方法就是通过写一个类似LordPE ...
- Java日志系列:Log4j使用和原理分析
目录 一.简介 二.使用 三.日志级别 四.组件说明 Loggers Appenders Layouts 五.配置 加载初始化配置 配置文件加载 查看日志记录器的详细信息 六.Layout的格式 七. ...
- 接到一个新需求应该怎么做?(V1.0)
接到一个新需求应该怎么做?(V1.0) 1 背景 在做业务研发的时候,经常会接到一些 产品需求/技术需求, 无论需求大小,都需要一套可以重复使用的方法论,来保证整个项目的正常交付,这篇思考就是总结梳理 ...
- python列表的增删
list = [1, 2, 3, 4]# 打印后两位print(list[-2:])# 打印前2位print(list[:2])# 修改列表元素list[0] = 5print(list)# 添加元素 ...
- vue3+ts Axios封装—重复请求拦截
创建好vue3项目 1.安装Axios与Element Plus Axios安装 npm install axios Element Plus 安装 官网入口:https://element-plus ...
- 触动精灵生成的APK文件如何加固保护
触动精灵是一款模拟手机触摸.按键操作的软件,通过制作脚本,可以让触动精灵代替双手,自动执行一系列触摸.按键操作, 深受一些极客开发者喜爱. 触动精灵生成的APK文件自带了一些基础的加密,可以保护APK ...
- 基于Protege的知识建模实战
一.Protege简介.用途和特点 1.Protege简介 Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具,也是基于知识的编辑器,属于开放源代码软件.这个软件 ...
- [SDR] SDR 教程实战 —— 利用 GNU Radio + HackRF 手把手深入了解蓝牙协议栈(从电磁波 -> 01数据流 -> 蓝牙数据包)
目录 0.前言 1.体验 2.代码解析 2.1 目录结构 2.2 main.py 2.3 grc gnu radio 流程图 2.4 如何从 01 数据流中解析出 BLE 广播包 2.4.1 物理层 ...