Web开发:SQLsugar的安装和使用

一、安装

第一步,在你的项目中找到解决方案,右键-管理解决方案的Nuget

第二步,下载对应的包,注意你的框架是哪个就下载哪个的包,一个项目安装一次包即可

点击应用和确定

安装好后会显示sqlsugar的包

二、使用:增删改查

using SqlSugar;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;[SugarTable("TestTable")] // 指定实体类对应的数据库表名
class TestTable
{[SugarColumn(IsPrimaryKey = true)] // 指定主键列public string Id { get; set; }public string Name { get; set; }public int Age { get; set; }public string Content { get; set; }public int IsEnable { get; set; }public int IsDeleted { get; set; }public string Stage { get; set; }public string Remarks { get; set; }
}class Test
{public static int AddOrUpdate<T>(SqlSugarClient db,T entity) where T : class, new(){var entityIdProp = GetEntityIdProperty<T>();var entityIdValue = entityIdProp.GetValue(entity);var dbEntity = db.Queryable<T>().InSingle(entityIdValue);if (dbEntity != null){// 根据 ID 查询到了记录,执行更新操作return db.Updateable(entity).ExecuteCommand();}else{// 根据 ID 没有查询到记录,执行插入操作return db.Insertable(entity).ExecuteCommand();}}public static PropertyInfo GetEntityIdProperty<T>() where T : class, new(){var entityType = typeof(T);var properties = entityType.GetProperties();foreach (var property in properties){var attribute = Attribute.GetCustomAttribute(property, typeof(SqlSugar.SugarColumn)) as SqlSugar.SugarColumn;if (attribute != null && attribute.IsPrimaryKey){return property;}}throw new Exception($"实体类型 {entityType.FullName} 没有定义主键");}static void Main(string[] args){// 创建 SqlSugar 实例SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "server = DESKTOP-FTH2P3S; Database = TestDb; Trusted_Connection = SSPI;", // 数据库连接字符串DbType = DbType.SqlServer, // 数据库类型IsAutoCloseConnection = true, // 是否自动关闭数据库连接});// 1.插入数据var model = new TestTable(){Id = Guid.NewGuid().ToString(),Name = "Tom",Age = 18,Content = "Hello World",IsEnable = 1,IsDeleted = 0,Stage = "Stage 1",Remarks = "Test"};int insert_code = db.Insertable(model).ExecuteCommand();//返回影响行数// 2.查询数据var list = db.Queryable<TestTable>().ToList();// 3.自定义查询SQLvar result = db.SqlQueryable<TestTable>("SELECT * FROM TestTable WHERE Age > 30").ToList();// 4.更新数据var updateModel = db.Queryable<TestTable>().Where(it => it.Id == "8ffd64fc-8aea-4641-a57b-d957ad0dd229").First();if (updateModel != null){updateModel.Name = "Jerry";var update_code = db.Updateable(updateModel).ExecuteCommand();//返回影响行数}// 5.删除数据var delete_code = db.Deleteable<TestTable>().Where(it => it.Id == "8ffd64fc-8aea-4641-a57b-d957ad0dd229").ExecuteCommand();//返回影响行数//6.自主封装的方法,有则添加无则插入(根据主键ID匹配)var updateModel2 = new TestTable();updateModel2.Id = "8ffd64fc-8aea-4641-a57b-d957ad0dd229";updateModel2.Name = "SuSu";int a = AddOrUpdate<TestTable>(db, updateModel2);//返回影响行数}
}

【备注】AddOrUpdate是自己写的方法。

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

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

相关文章

聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化

聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化 目录 聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化&#xff08;完整源码和数据) 2.多特征输入&…

深度探析卷积神经网络(CNN)在图像视觉与自然语言处理领域的应用与优势

目录 前言1 CNN网络结构与工作原理1.1 输入层1.2 卷积层1.3 最大池化层1.4 全连接层 2 应用领域2.1 图像视觉领域中CNN的应用2.2 NLP领域中CNN的应用 3 CNN的限制与未来展望3.1 CNN的挑战3.2 CNN的展望 结语 前言 卷积神经网络&#xff08;CNN&#xff09;作为一种强大的深度学…

【Spring】Spring的事务管理

前言&#xff1a; package com.aqiuo.service.impl;import com.aqiuo.dao.AccountMapper; import com.aqiuo.pojo.Account; import com.aqiuo.service.AccountService; import org.springframework.jdbc.core.JdbcTemplate;import java.sql.Connection; import java.sql.SQLEx…

CentOS 8 8.5.2111 网络在线安装系统 —— 筑梦之路

之前写过一篇关于centos 8 官方停止更新维护后解决yum源问题的文章&#xff1a; CentOS 8 停止维护后换可用yum源——筑梦之路_http://ftp.iij.ad.jp/pub/linux/centos-vault/8.5.21-CSDN博客 由于centos 8 dvd的镜像比较大&#xff0c;有时候我们根本不需要去下载一个10G以上…

“30天化学探索旅程”提纲

文章目录 第一部分&#xff1a;化学基础理论1. 第1天&#xff1a;化学世界的开启2. 第2天&#xff1a;元素周期表的探索之旅3. 第3天&#xff1a;原子构造的秘密揭示4. 第4天&#xff1a;化学键的魔力解析5. 第5天&#xff1a;无机化合物的世界与应用 第二部分&#xff1a;化学…

Python中无法使用Selenium,显示ValueError: Timeout value connect was ……, but it must be an int, float or None

近期重装了系统&#xff0c;需要做个爬虫&#xff0c;最初想用Selenium和Msedge模拟浏览器操作&#xff0c;但总是不成功&#xff0c;即使是用webdriver打开网页这样最简单的操作&#xff0c;也无法做到&#xff0c;总是显示ValueError: Timeout value connect was <object …

手机远程控制电脑_手机操作电脑方法

在我们的日常生活和工作中&#xff0c;有时候我们需要从外面访问家里或公司的电脑。这听起来可能很复杂&#xff0c;但实际上非常简单。今天&#xff0c;我们将分享如何使用手机远程控制电脑。 首先&#xff0c;您需要在电脑上安装KKView远程控制软件&#xff0c;该软件提供手…

PositiveSSL和Sectigo的多域名证书

首先&#xff0c;我们要知道PositiveSSL是Sectigo旗下的子品牌&#xff0c;提供多种类型的SSL数字证书&#xff0c;包括DV基础型的多域名SSL证书。Sectigo的SSL证书产品同样比较丰富&#xff0c;不仅有DV基础型多域名SSL证书&#xff0c;还有OV企业型以及EV增强型的多域名SSL证…

IO类day02

JAVA IO java io可以让我们用标准的读写操作来完成对不同设备的读写数据工作. java将IO按照方向划分为输入与输出,参照点是我们写的程序. 输入:用来读取数据的,是从外界到程序的方向,用于获取数据. 输出:用来写出数据的,是从程序到外界的方向,用于发送数据. java将IO比喻为…

LINUX基础培训三之文件和目录管理

前言、本章学习目标 了解LINUX文件类型及目录结构掌握LINUX文件的基本属性熟悉用户、用户组、其他的安全模型掌握LINUX文件和目录的常用管理 一、LINUX文件管理 1、什么是LINUX中的文件 在LINUX操作系统中有一个重要的概念&#xff1a;一切皆为文件。除了我们常说的文本文…

pytorch09:可视化工具-TensorBoard,实现卷积核和特征图可视化

目录 一、TensorBoard简介二、TensorBoard安装三、TensorBoard运行可视化四、TensorBoard详细使用4.1 SummaryWriter4.2 add_scalar()4.3 add_scalars()4.4 add_histogram()4.4.1实际项目开发使用 4.5 add_image()4.6 torchvision.utils.make_grid4.7 卷积核和特征图可视化4.7.…

Nature:物理所利用原位透射电子显微技术在分子尺度研究立方冰

冰是水在自然界中的固体形态&#xff0c;在大自然中也广泛存在&#xff0c;冰的结构及形成机理研究对云物理及低温储存物理至关重要&#xff0c;因此科学家们对冰的研究也历史久远。提到冰在较小尺度的存在形态&#xff0c;我们最容易想到的是雪花。如下图所示&#xff0c;雪花…

视频智能分析/边缘计算AI智能分析网关V4区域入侵检测算法如何配置?

边缘计算AI智能分析网关&#xff08;V4版&#xff09;部署了近40种AI算法模型&#xff0c;支持对接入的视频图像进行人、车、物、行为等实时检测分析&#xff0c;并上报识别结果&#xff0c;并能进行语音告警播放。算法配置后&#xff0c;即可对监控视频流进行实时检测&#xf…

(2017|NIPS,VQ-VAE,离散潜在)神经离散表示学习

Neural Discrete Representation Learning 公和众和号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 3. VQ-VAE 3.1 离散潜在变量 3.2 学习 3.3 先验 4. 实验 0. 摘要 学习在无…

【QML COOK】- 000-创建Project

1. 文件->New Project... 2. Application(Qt)->Qt Quick Application(compat) 3. 填好【名称】和【创建路径】 4. 选择CMake 5. 选择QT6.2 6. 直接【下一步】 7. 直接下一步 8. 直接下一步 9. 出现工程文件 10. 点击运行 11. 出现窗口

10亿数据高效插入MySQL最佳方案

写在文章开头 你好&#xff0c;我叫sharkchili&#xff0c;目前还是在一线奋斗的Java开发&#xff0c;经历过很多有意思的项目&#xff0c;也写过很多有意思的文章&#xff0c;是CSDN Java领域的博客专家&#xff0c;也是Java Guide的维护者之一&#xff0c;非常欢迎你关注我的…

【性能】【算法】for循环,性能提高

目录 ■提高性能的方法 ・原理 1.1.java处理中&#xff0c;计算阶乘&#xff0c;为什么展开循环可以提高效率 1.2.从cpu的流水线角度&#xff0c;再说明一下 1.3.介绍一下 cup的指令流水线 ■实际运用 1.求和 代码 结果 2.求阶乘 &#xff08;性能提高效果明显&…

Debezium发布历史56

原文地址&#xff1a; https://debezium.io/blog/2019/05/23/tutorial-using-debezium-connectors-with-apache-pulsar/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 将 Debezium 连接器与 Apache Pulsar 结合…

笔试案例2

文章目录 1、笔试案例22、思维导图 1、笔试案例2 09&#xff09;查询学过「张三」老师授课的同学的信息 selects.*,c.cname,t.tname,sc.score from t_mysql_teacher t, t_mysql_course c, t_mysql_student s, t_mysql_score sc where t.tidc.cid and c.cidsc.cid and sc.sids…

简洁大气带进度条的URL跳转页面HTML源码

源码介绍 简洁大气带进度条的URL跳转页面HTML源码&#xff0c;记事本修改里面的内容即可&#xff0c;喜欢的同学可以拿去使用 获取方式&#xff1a; 蓝奏云&#xff1a;https://wfr.lanzout.com/ic1iZ1kj6yde CSDN免积分下载:https://download.csdn.net/download/huayula/88…