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 ...
随机推荐
- Builder 生成器模式简介与 C# 示例【创建型2】【设计模式来了_2】
〇.简介 1.什么是生成器模式? 一句话解释: 在构造一个复杂的对象(参数多且有可空类型)时,通过一个统一的构造链路,可选择的配置所需属性值,灵活实现可复用的构造过程. 生成器模式的重心,在于分离 ...
- 【Qt6】QWidgetAction 的使用
在开始主题前,先看一个 C++ 例子: #include <iostream> struct Data { int a; int b; }; // 注意这里 struct Data *s; ...
- phpexcel图片获取
phpexcel图片获取常见的两种方式: require_once dirname(__FILE__) . '/../Jn/PHPExcel.php'; $filePath = "123.x ...
- c++算法之动态规划:01背包
什么是动态规划? 动态规划算法(dynamic programing),是一种由递推为基础的比贪心更稳定的一种优化策略,为运筹学的一部分.就是通过以递推为基础的手段非暴力求出最值. 它的总体思想其实就 ...
- 三维模型OSGB格式轻量化纹理压缩关键技术分析
三维模型OSGB格式轻量化纹理压缩关键技术分析 在三维模型应用中,纹理是一个十分重要的因素,可以使得模型更加真实.精细.随着移动设备和网络传输速度的限制,纹理数据也需要进行轻量化处理,而OSGB格式纹 ...
- 通过商品API接口获取到数据后的分析和应用
一.如果你想要分析商品API接口获取到的数据,可以按照如下的步骤进行: 了解API接口返回值的格式,如JSON格式.XML格式.CSV格式等,选择适合你的数据分析方式. 使用API请求工具(如Post ...
- DevOps |研发效能之环境、程序、配置、SQL变更管理
本文主要是讲如何建立有效的环境.程序.配置.SQL变更和管理平台. 几天前和一个朋友聊到环境.程序的配置变更,SQL变更和整个上线流程.之前我们在这块也做了很多,有做的好的也有做的一般的,借机都总结 ...
- 我的新书《Flink大数据分析实战》出版啦
- 全景VR KRPano项目打包成安卓APP快速简易教程
有时候,我们可能不想把我们制作的全景VR项目发布到网站上,而是想把它作为一个手机应用来使用或者分享.这样,我们就可以更好地保护我们的作品,也可以更方便地展示给客户或者朋友.本文将介绍一种简单的方法,让 ...
- crypto 加解密库简介与测试【GO 常用的库】
〇.前言 GO 语言的标准库 crypto 提供了一组用于加密和解密的包,包括对称加密.哈希函数.数字签名.随机数生成等功能.在日常开发中,通过使用这些库,可以确保数据的安全性和完整性. 对于使用频率 ...