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 ...
 
随机推荐
- K8S | Service服务发现
			
服务发现与负载均衡. 一.背景 在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关.注册中心.配置中心等相关服务,可以被集群外部访问: 对于测试「Tes」环境或者 ...
 - 原来TypeScript中的接口和泛型这么好理解
			
"接口"和"泛型"是 TypeScript 相比于 JavaScript 新增的内容,都用于定义数据类型 前面两篇文章总结了TypeScript中的 类型注解. ...
 - 详谈 springboot整合shiro
			
背景: 上文学习了shrio 基本概念后,本章将进一步的落地实践学习,在springboot中如何去整合shrio,整个过程步骤有个清晰的了解. 利用Shiro进行登录认证主要步骤: 1. 添加依赖: ...
 - [python] 第一个爬虫, 爬妹子写真集图片
			
效果图 版本以及需要用到的第三方库 python 2.7 bs4 (安装命令: pip install bs4) - 代码 #!/usr/bin/env python #coding:UTF-8 #脚 ...
 - Row Major
			
Smiling & Weeping ----昨天, 别人在我身旁大声说出你的名字, 这对于我, 像从敞开的窗口扔进了一朵玫瑰花. 思路:不客气地说,这是一道令人费解的题目,要求构造一个字符串, ...
 - 【规范】SpringBoot接口返回结果及异常统一处理,这样封装才优雅
			
前言 缘由 博友的需求就是我最大的动力 博友一说话,本狗笑哈哈.博友要我写啥,我就写啥. 特来一篇关于SpringBoot接口返回结果及异常统一处理,虽说封不封装都能用,但咱后端也得给前端小姐姐留个好 ...
 - Vue 脚手架编程
			
1.1 初始化脚手架 1.1.1 说明 Vue 脚手架是 Vue 官方提供的标准化开发工具(开发平台) 最新的版本是 4.x 文档 1.1.2 具体步骤 第一步(仅第一次执行):全局安装 @vue/c ...
 - Solution -「香港网络赛 2016」A+B Problem
			
Description Link. 给出一个长度为 \(n\) 的序列 \(a\),问有序三元组 \((a_{i},a_{j},a_{k})\) 使得 \(i\neq j\neq k\) 且 \(a_ ...
 - linux常用命令(八) tar 打包、压缩、解包、解压缩
			
Linux 常用的压缩与解压缩命令有:tar.gzip.gunzip.bzip2.bunzip2.compress .uncompress. zip. unzip.rar.unrar 等. 首先要弄清 ...
 - sql优化的方法总结
			
1.对查询进行优化,应该尽量避免全表扫描,首先应考虑在where和order by涉及的列上建立索引 2.应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表 ...