【小白专用 已验证24.6.18】C# SqlSugar操作MySQL数据库实现增删改查

【小白专用24.6.18】C# SqlSugar:连接数据库实现简单的,增、删、改、查-CSDN博客

SqlSugar .Net ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网

SqlSugar项目创建

通过NuGet包管理器搜索SqlSugarMySql还要安装MySql.Data、Newtonsoft.Json)包并安装

1.NuGet安装sqlsugar

新建一个C#的桌面应用程序,起名为SqlSugarDemo,然后鼠标右键选择引用,选择管理NuGet程序包,然后点击浏览后输入sqlsugar查找,找到直接点击安装

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

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

安装完后点击已安装,并且点开右边的引用后也可以看到SqlSugar就已经安装好了,如下图



 

2.实体类用法

在写查询代码之前,还要增加一个类,作为映射,数据库中tp_auth_rule表:

项目右键——添加——类,id为主键并设置为自增

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

//如果实体类名称和表名不一致可以加上SugarTable特性指定表名

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SqlSugarDemo
{[SugarTable("tp_auth_rule")][Serializable]public class tp_auth_rule{/// <summary>/// 编号/// <summary>[SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)]public int id {get; set; }/// <summary>/// 编码/// <summary>[SugarColumn(ColumnName = "code")]public string code {get; set; }/// <summary>/// 父ID/// <summary>[SugarColumn(ColumnName = "pid")]public int pid {get; set; }/// <summary>/// 控制器/方法/// <summary>[SugarColumn(ColumnName = "name")]public string name {get; set; }/// <summary>/// 权限名称/// <summary>[SugarColumn(ColumnName = "title")]public string title {get; set; }/// <summary>/// type/// <summary>[SugarColumn(ColumnName = "type")]public int type {get; set; }/// <summary>/// 菜单状态/// <summary>[SugarColumn(ColumnName = "status")]public int status {get; set; }/// <summary>/// conditions/// <summary>[SugarColumn(ColumnName = "conditions")]public string conditions {get; set; }/// <summary>/// 排序/// <summary>[SugarColumn(ColumnName = "sort")]public int sort {get; set; }/// <summary>/// 验证权限/// <summary>[SugarColumn(ColumnName = "auth_open")]public int? auth_open {get; set; }/// <summary>/// 图标名称/// <summary>[SugarColumn(ColumnName = "icon")]public string icon {get; set; }/// <summary>/// 创建时间/// <summary>[SugarColumn(ColumnName = "create_time")]public int? create_time {get; set; }/// <summary>/// 更新时间/// <summary>[SugarColumn(ColumnName = "update_time")]public int update_time {get; set; }/// <summary>/// 参数/// <summary>[SugarColumn(ColumnName = "param")]public string param {get; set; }}
}

3.SqlSugar的简单用法

新建一个SqlConnection.cs

在这里,我们来完成SqlSugar连接SQLServer数据库的基本操作。语法上,其实和使用Microsoft.Data.SqlClient很相似,首先创建一个实例,

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SqlSugarDemo
{/// <summary>/// SqlSugar连接到MySQL数据库/// </summary>public class MySqlConnection{private static string strConnectionString = string.Empty;#region 数据库访问对象/// <summary>/// 数据库访问对象/// </summary>private static SqlSugarClient db = null;/// <summary>/// 初始化SqlSugarClient/// </summary>/// <returns>返回SqlSugarClient对象</returns>public static SqlSugarClient GetInstance(){if (strConnectionString == string.Empty){//strConnectionString = "Data Source=192.168.4.61;Initial Catalog=ReportServer;User ID=sa;Password=16";strConnectionString = "server = localhost; port = 3306; user = root; password = a6; database = worch; Convert Zero Datetime=True; Allow User Variables=True; AllowLoadLocalInfile=true";}db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = strConnectionString,DbType = SqlSugar.DbType.MySql,//DbType.SqlServer,IsAutoCloseConnection = true});return db;}#endregion/// <summary>/// 查询出tp_auth_rule表中的所有数据,映射到StudentInfo,然后作为list返回/// </summary>/// <returns></returns>public static List<tp_auth_rule> Query(){var db = GetInstance();return db.Queryable<tp_auth_rule>().ToList();}public static void Insert(tp_auth_rule student){var db = GetInstance();db.Insertable<tp_auth_rule>(student).ExecuteCommand();}public static bool Delete(tp_auth_rule student){var db = GetInstance();db.Deleteable<tp_auth_rule>(student).ExecuteCommand();return true;}}
}

 SqlSugarClient需要传入参数,我们以第一个为例,需要ConnectionConfig类型的参数

fc1a78d4c29f955ecf72587e8f74f83f.png

ConnectionConfig如下

309f64e9bdfeff1556b9c5e847566747.png

功能的演示

查询示例

        private void btnQuery_Click(object sender, EventArgs e){var tp_auth_rulelist = MySqlConnection.Query();dataGridView1.DataSource = tp_auth_rulelist;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

讯飞听见录音笔H1/H1 PRO 如何在录音笔中删除录音

讯飞听见录音笔H1/H1 PRO 如何在录音笔中删除录音 讯飞听见录音笔H1/H1 PRO 如何在录音笔中删除录音 讯飞听见录音笔H1/H1 PRO 如何在录音笔中删除录音 同时按下音量➕和音量➖就可以

大数据处理的坚实基石:Scala不可变数据结构的作用

在大数据处理领域&#xff0c;数据的一致性、可靠性和性能至关重要。Scala语言提供的不可变数据结构在保证数据处理的稳定性和高效性方面发挥着重要作用。本文将详细探讨Scala中不可变数据结构的概念、优势以及它们在大数据处理中的应用。 不可变数据结构的概念 在Scala中&am…

Java零基础-集合:Queue

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

C# —— 继承

C# 面向对象的编程语言: 三个基本特征 1.封装: 例如平时定义一个类 添加属性和方法&#xff0c;属性和方法必须通过指定的对象进行使用&#xff0c;(专业来讲。隐藏对象内部的状态和功能&#xff0c;仅允许通过一组公共函数进行使用) 2.继承: 子类和父类的区分&#xff0c;子…

Redis之商品缓存

文章目录 什么是缓存添加Redis缓存缓存更新策略缓存穿透缓存空对象布隆过滤器 缓存雪崩给不同的key的TTL添加随机值利用Redis集群提高服务的可用性给缓存业务添加降级限流策略给业务添加多级缓存 缓存击穿互斥锁逻辑过期 缓存工具封装方法1 写入redis方法2 设置逻辑过期方法3 解…

驱动开发(六):应用层通过文件系统与内核层交互

驱动开发相关文章: 驱动开发&#xff08;一&#xff09;&#xff1a;驱动代码的基本框架 驱动开发&#xff08;二&#xff09;&#xff1a;创建字符设备驱动 驱动开发&#xff08;三&#xff09;&#xff1a;内核层控制硬件层 驱动开发&#xff08;四&#xff09;&#xff…

Redis数据结构-跳跃表 skiplist

跳跃表&#xff08;Skiplist&#xff09;是一种用于高效查找的概率型数据结构&#xff0c;它在插入、删除、搜索操作上具有较高的性能&#xff0c;接近于平衡树。Redis使用跳跃表来实现有序集合&#xff08;sorted sets&#xff09;中的范围查询。 ### 跳跃表的基本结构 跳跃…

借助TheGraph 查询ENS信息

关于ENS (以太坊域名服务) ENS 全称是 Ethereum Name Service,它是一个建立在以太坊区块链上的去中心化域名系统。 ENS 在 Web3 领域发挥着重要作用,主要有以下几个方面: 可读性更好的地址: ENS 允许用户将复杂的以太坊地址(如 0x12345…) 映射为更简单易记的域名。这极大地提…

数据分析-------面试相关

数据分析面试到底在面什么 在寻找合适的数据分析师时&#xff0c;一般招聘方的目标是确保候选人的专业技能和工作经验与岗位要求紧密对应。 关键在于两个方面:岗位的具体需求和数据分析师的职业素质。 首先&#xff0c;招聘方要确保应聘者的专业背景和技能与职位需求相匹配。…

解决微信小程序中input框被禁用后,电脑端小程序点击事件无效,手机端开发者工作和手机端正常

问题&#xff1a;input框被禁用后&#xff0c;电脑端小程序点击事件无效&#xff0c;手机端开发者工作和手机端正常。 解决方法&#xff1a;使用view包裹input标签&#xff0c;在view添加点击事件&#xff0c;input添加css:pointer-events:none; // 禁止鼠标事件 <view bin…

中国车牌检测数据集VOC+YOLO格式2001张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2001 标注数量(xml文件个数)&#xff1a;2001 标注数量(txt文件个数)&#xff1a;2001 标注…

Java 中的 Optional 类及其在避免空指针异常中的作用?如何使用它们来过滤重复元素?

在Java编程的世界里&#xff0c;NullPointerException&#xff08;空指针异常&#xff09;恐怕是每个开发者都不陌生的“老朋友”。它通常发生在尝试访问或操作一个为null的对象的成员时&#xff0c;这不仅会导致程序崩溃&#xff0c;还可能隐藏了代码中的逻辑错误。为了优雅地…

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统&#xff1f; 从严格意义上说&#xff0c;可将操作系统定义为一种软件&#xff0c;它控制计算机硬件资源&#xff0c;提供程序运行环境。我们通常将这种软件称为内核&#xff08;kerel)&#xff0c;因为它相对较小&#xff0c;而且位于环境的核心。 从广义上…

【TensorFlow深度学习】完整项目案例:从零搭建自然语言问答系统

完整项目案例:从零搭建自然语言问答系统 完整项目案例:从零搭建自然语言问答系统1. 项目概览2. 技术栈与环境准备3. 数据准备4. 模型选择与加载5. 数据预处理6. 模型预测7. 性能优化与评估8. 部署与应用结语完整项目案例:从零搭建自然语言问答系统 随着人工智能技术的飞速发…

用python打印——九九乘法表2

for i in range(1, 10):for j in range(1, i 1):print(f"{j} * {i} {j * i}\t", end)j 1print()外层的 for 循环从 1 到 9 遍历 i。对于每个 i&#xff0c;内层的 for 循环从 1 到 i 遍历 j。在每次循环中&#xff0c;打印出 j 乘以 i 的结果&#xff0c;并以制表…

数据安全和数据加密

数据安全 数据安全是信息技术领域的一个核心议题&#xff0c;涉及到保护数字资料免受未经授权的访问和攻击。它主要包含三个关键方面&#xff1a;可用性、完整性和机密性&#xff0c;这三个要素共同构成了所谓的“信息安全三原则”。 可用性 可用性意味着授权用户能够及时地…

STM32介绍和资料地址

STM32标准外设软件库 https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html 支持标准外设库的产品系列&#xff1a;

XMLTomcatHttp协议

XML&Tomcat&Http协议 目录 XML&Tomcat&Http协议 1. xml解析(了解) 1.1 配置文件 1.1.1 配置文件的作用 1.1.2 常见的配置文件类型 1.2 properties文件 1.2.1 文件示例 1.2.2 语法规范 1.3 XML文件 1.3.1 文件示例 1.3.2 概念介绍 1.3.3 XML的基本语…

【Android】记录在自己的AMD处理器无法使用Android studio 虚拟机处理过程

文章目录 问题&#xff1a;无法在AMD平台打开Android studio 虚拟机&#xff0c;已解决平台&#xff1a;AMD 5700g系统&#xff1a;win10专业版1、在 amd平台上使用安卓虚拟机需要安装硬件加速器2、关闭win10上的系统服务 问题&#xff1a;无法在AMD平台打开Android studio 虚拟…

前端 CSS 经典:鼠标位置信息

前言&#xff1a;当监听鼠标事件时&#xff0c;需要了解鼠标属性所代表的位置信息 dom.addEventListener("click", (e) > {e.pageX;e.clientX;e.offsetX;e.movementX; }); 1. pageX 表示鼠标距离整个页面左边缘的距离&#xff0c;就算有滚动条&#xff0c;最左…