SqlSugar入门教程:连接,增、删、改、查

news/2025/1/8 19:03:31/文章来源:https://www.cnblogs.com/Dongmy/p/18658125

原文链接:https://blog.csdn.net/zls365365/article/details/131199132

第一步,自然是新建一个项目,控制台什么都可以。因为我还没想好怎么做一个完整的项目,那暂且用一个控制台举例吧。

 

下面自然是从NuGet安装sqlsugar了。注意鉴别需要安装的版本,我这里是安装sqlsugarcore。

 

安装完成后

 

看下它所依赖的程序集。

新建一个SqlConnection.cs

 

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

SqlSugarClient DB = new SqlSugarClient();

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

ConnectionConfig如下

 

下面就是一个具体的例子:

SqlSugarClient DB = new SqlSugarClient(new ConnectionConfig{ConnectionString = "Server=192.168.....",DbType = DbType.SqlServer,IsAutoCloseConnection = true,InitKeyType = InitKeyType.SystemTable});
名称描述必填
DbType 数据库类型
ConnectionString 连接字符串
IsAutoCloseConnection 自动释放和关闭数据库连接,如果有事务事务结束时关闭,否则每次操作后关闭  
InitKeyType ORM读取自增列和主键的方式 ,建议从特性读取,如果从数据库读取需要SA等高级权限账号  
IsShardSameThread 同线程共享SqlConnection但是不共享SqlSugarClient,非特殊情况不建议使用,特别是异步  
ConfigureExternalServices 一些扩展层务的集成  
MoreSettings 更多设置  
SlaveConnectionConfigs 主从设置  

然后我们就可以用这个链接数据库了。在写查询代码之前,还要增加一个类,作为映射。

[SugarTable("T_DouPoClass")]public class StudentInfo{[SugarColumn(ColumnName = "F_Name")]public string Name { get; set; }[SugarColumn(ColumnName = "F_Gender")]public string Gender { get; set; }[SugarColumn(ColumnName = "F_Class")]public string Class { get; set; }[SugarColumn(ColumnName = "F_Grade")]public string Grade { get; set; }}

我们这里类名和表名,属性和栏位名不同,所以需要标记一下。暂时没有使用Id的自增列。

新建一个查询方法:

public static List<StudentInfo> Query(){var db = GetInstance();return db.Queryable<StudentInfo>().ToList();}

根据上面的实例配置,使用Queryable就会查询出T_DouPoClass表中的所有数据,映射到StudentInfo,然后作为list返回。

我们通过下面的代码测试一下返回的结果

class Program{static void Main(string[] args){var Students = SqlConnection.Query();Console.WriteLine("连接成功");foreach (var student in Students){Console.WriteLine(student.Name);}}}

打个断点,查看获取的信息。

 

同样,我们进行增、删、改的动作。

增:

public static void Insert(StudentInfo student){var db = GetInstance();db.Insertable<StudentInfo>(student).ExecuteCommand();}

 

 

改:修改操作一般需要依靠主键,但是我们这里没有主键,所以需要额外指定栏位。

比如陀舍古帝的性别为异火,需要修改,那么就要指定更新Gender这个属性,然后根据Name这个属性进行更新。

public static bool Update(StudentInfo student){var db = GetInstance();db.Updateable<StudentInfo>(new StudentInfo {Grade = student.Grade,Class= student.Class,Name= student.Name, Gender="异火"}).UpdateColumns(s => new {s.Gender}).WhereColumns(s => s.Name).ExecuteCommand();return true;}

 

Updateable可接受的参数有多重,我们这里是传入更新后的对象,可以传入list进行多笔数据的更新。

 

删:删除需要依赖主键,所以这时候我就把Name设置为了主键(数据库设置)

[SugarColumn(ColumnName = "F_Name",IsPrimaryKey =true)]
public string Name { get; set; }
public static bool Delete(StudentInfo student){var db = GetInstance();db.Deleteable<StudentInfo>(student).ExecuteCommand();return true;}

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

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

相关文章

env(safe-area-inset-bottom) 兼容写法

先看下兼容性:可以看到 @supports 兼容性很好,所以使用 @supports 做兼容是个不错的选择。 例:@supports (padding-bottom: env(safe-area-inset-bottom)) or(padding-bottom: constant(safe-area-inset-bottom)) {.your-dom {padding-bottom: constant(safe-area-inset-bot…

工业采集系统-天然气计量仪表费用二次计算

1、在“驱动管理->中间件驱动”中添加NaturalGasCalculation.drive。2、在设备配置中,添加采集设备,假设采集到的天然气费用因子为D1.F1,充值金额因子为D1.F2,要求计算的天然气使用体积因子为D1.F3。3、在“系统功能->中间件”中添加一个天然气费用计算中间件,配置内…

SQL优化有绝招,使用DAS提升工作效率!完成任务可领取保暖手套!

​「使用DAS实现数据库SQL优化」活动上线了! 数据库自治服务(Database Autonomy Service,简称DAS)是一种基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务。数据库自治服务DAS支持自动SQL优化,相比传统的优化方式,能够自动识别问题SQL,…

类关系图

本文描述了面向对象设计中类与类之间的五种关系,并对这五种关系从耦合程度、语义和方向上进行了比较。类关系图

特种作业操作(低压电工)实操考试资料整理

为啥去考 在B站关注城阳电工电路等赛博电工师傅们已经有一段时间了,我很喜欢看这些师傅们解决生活中的、生产上的各种电气问题,2023年春天就想去报名学,但是那时候学业很繁忙,而初证又需要去线下学习一段时间。到2024年11月发现自己这段时间突然有空,就尽快找了一家机构报…

AutoGen入门-让两个AI自行聊天完成任务

AutoGen介绍 AutoGen 是一个开源编程框架,用于构建 AI 代理并促进多个代理之间的合作以解决问题。AutoGen 旨在提供一个易于使用和灵活的框架,以加速代理型 AI 的开发和研究,就像 PyTorch 之于深度学习。它提供了诸如代理之间可以对话、LLM 和工具使用支持、自主和人机协作工…

Centos7 安装redis教程

步骤一:安装gcc依赖检查gcc是否已经安装,命令:gcc -v,出现下图说明已经安装由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装yum install -y gcc步骤二:下载redis安装包 https://download.redis.io/relea…

【编码】如何实现一套自定义网络协议?

前言 下文介绍的自定义协议仅作为学习示例,纯粹是玩具项目,没有实际可用性。无需过度关注和讨论其合理性 进行通信的双方是谁? 常见的模型 客户端-服务器,例如HTTP协议,浏览器<=>Web服务器。 中转站模型,如MQTT协议,应用服务<=>中转站<=>硬件客户端 对…

记录一个使用VsCode来ssh的问题(已经打开了ssh的一个文件夹路径,怎么新开一个文件夹路径)

一、操作 使用快捷键 Ctrl+Shift+P(Windows) 或 Cmd+Shift+P (Mac)打开 命令面板 然后输入: File:Open Folder之后就可以选项新的路径打开了。。。没想到我被这个卡了好久,有点无语。

Postman配置接口挡板

0、首先需要在postman上注册并登录账号(登录前最好先备份已有的报文) 如果你在登录后发现历史存储的报文不见了,不要担心,在退出登录后将会重新显示出来。你可以将之前备份的报文导入到登录后的workspace中使用1、进入Workspace,新建Collection 2、找到新建的collection…

vue3新建项目的DevTools Settings

找到vite.config.js 注释掉这两行就消失了