当前位置: 首页 > news >正文

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是自己写的方法。

相关文章:

Web开发:SQLsugar的安装和使用

一、安装 第一步&#xff0c;在你的项目中找到解决方案&#xff0c;右键-管理解决方案的Nuget 第二步&#xff0c;下载对应的包&#xff0c;注意你的框架是哪个就下载哪个的包&#xff0c;一个项目安装一次包即可 点击应用和确定 安装好后会显示sqlsugar的包 二、使用&#xf…...

Redis面试题10

Redis 支持哪些数据结构&#xff1f; Redis 支持以下几种常用的数据结构&#xff1a; 字符串&#xff08;String&#xff09;&#xff1a;用于存储字符串值&#xff0c;可以是文本或二进制数据。 列表&#xff08;List&#xff09;&#xff1a;用于存储一个有序的字符串列表&am…...

arm64架构编译electron长征路

文章目录 1. gn工具生成1.1 问题,找不到last_commit_position.h文件问题描述如下:解决方法1.2 ninja文件不是对应架构问题问题描述:解决方法1.3 问题3:clang++找不到问题描述解决方法2. electron 编译参数生成2.1 下载对应版本debian_bullseye_arm64-sysroot错误描述...

建模软件Rhinoceros mac介绍说明

Rhinoceros mac是一款3D设计软件“犀牛”&#xff0c;在当今众多三维建模软件中&#xff0c;Rhinoceros 版因为其体积小、功能强大、对硬件要求低而广受欢迎&#xff0c;对于专业的3D设计人员来说它是一款不错的3D建模软件&#xff0c;Rhinoceros Mac中文版能轻易整合3DS MAX与…...

视频号下载小助手:教你微信视频号怎么提取视频出来

作为一名剪辑师或自由职业者,我们作为短视频创作者有时候需要下载多个视频用于制作多个解说系列的视频或者连续剧。然而,下载这些视频通常需要花费大量时间和精力,尤其是在没有合适的工具的情况下&#xff0c;让我们制作视频也确实困难&#xff0c;那么我们该如何解决呢&#x…...

C#-委托

委托类型 (delegate type) 表示对具有特定参数列表和返回类型的方法的引用。通过委托&#xff0c;我们能够将方法作为实体赋值给变量和作为参数传递。委托类似于在其他某些语言中的函数指针的概念&#xff0c;但是与函数指针不同&#xff0c;委托是面向对象的&#xff0c;并且是…...

Mr_HJ / form-generator项目文档学习与记录(续2)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/n…...

React16源码: React中FiberRoot的源码实现

关于 FiberRoot 1 &#xff09;概述 在 ReactDOM.render 过程当中&#xff0c;创建了一个 ReactRoot的对象这个 ReactRoot 对象最主要承担了创建 FiberRoot 对象这个对象它非常重要&#xff0c;在后期整个应用调度过程当中都会跟它有关关于 FiberRoot 对象 A. 它是整个应用的起…...

Linux第24步_安装windows下的VisualStudioCode软件

Visual Stuio Code是一个编辑器&#xff0c;简称 为 VSCode&#xff0c;它是微软出的一款免费编辑器。 VSCode有 Windows、 Linux和 macOS三个版本的&#xff0c;是一个跨平台的编辑器。VSCodeUserSetup-x64-1.50.1是Windows系统中的VSCode软件&#xff0c;而“code_1.50.1-160…...

Spring 注解 和SpringMVC注解

Spring和Spring MVC是两个紧密相关但又不同的框架&#xff0c;它们都使用一系列注解来简化开发。以下是Spring和Spring MVC中一些常用的注解&#xff1a; ### Spring 注解&#xff1a; 1. **Component&#xff1a;** - 用于将类标记为Spring容器中的组件&#xff0c;由Spr…...

iOS rootless无根越狱解决方案

据游戏工委数据统计&#xff0c;2023年国内游戏市场实际销售收入与用户规模双双创下新高&#xff0c;游戏普遍采用多端并发方式&#xff0c;成为收入增长的主因之一。 中国市场实际销售收入及增长率丨数据来源&#xff1a;游戏工委 多端互通既是机遇&#xff0c;也是挑战。从游…...

文件管理小技巧:如何高效整理多种格式的图片,图片分类的方法

随着数字时代的到来&#xff0c;每天都会处理到大量的图片&#xff0c;从个人照片到工作相关的图像资料。如何高效地整理多种格式的图片&#xff0c;常常让人感到困扰。下面看下云炫文件管理器如何对图片分类的方法。 jpg图片、png图片、tiff图片未归类前的缩略图。 jpg图片、…...

【c++】入门4

内联函数声明和定义不能分开 inline不建议声明和定义分离&#xff0c;分离会导致链接错误。因为inline被展开&#xff0c;就没有函数地址 了&#xff0c;链接就会找不到。 auto关键字 随着程序越来越复杂&#xff0c;程序中用到的类型也越来越复杂&#xff0c;经常体现在&…...

使用Web自动化测试工具显著好处

随着互联网技术的飞速发展&#xff0c;Web应用程序在企业中的重要性不断上升。为了确保Web应用程序的质量和稳定性&#xff0c;许多企业转向了Web自动化测试工具。下面是使用Web自动化测试工具的一些显著好处&#xff1a; 1. 提高测试覆盖率 Web自动化测试工具可以模拟用户与We…...

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

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

【入门】字符串对比(UPC)

题目描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到100之间)&#xff0c;它们之间的关系是以下4种情况之一&#xff1a; 1&#xff1a;两个字符串长度不等。比如 Beijing 和 Hebei 2&#xff1a;两个字符串不仅长度相等&#xff0c;而且相应位置上的字符完…...

thinkphp美容SPA管理系统源码带文字安装教程

thinkphp美容SPA管理系统源码带文字安装教程 运行环境 服务器宝塔面板 PHP 7.0 Mysql 5.5及以上版本 Linux Centos7以上 基于thinkphp3.23B-JUI1.2开发&#xff0c;权限运用了Auth类认证&#xff0c;权限可以细分到每个功能&#xff0c; 增删改查功能一应俱全&#xff0c;整合了…...

apache共享目录文件配置

httpd配置文件路径 /etc/httpd/conf/httpd.conf 配置单个节点 httpd中原本有一个配置 <Directory "/var/www">AllowOverride None# Allow open access:Require all granted </Directory># Further relax access to the default document root: <D…...

kotlin take 和 drop

kotlin take的作用 从头开始获取指定数量的元素 val numbers listOf("one", "two", "three", "four", "five", "six") // 取集合的4个集合 Log.d("take", numbers.take(3).toString()) // 打印结果[…...

SQL-DML增删改

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...