首页 > 数据库 >SqlSugar入门教程:连接,增、删、改、查

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

时间:2025-01-07 18:33:00浏览次数:1  
标签:Name string 入门教程 db public student 连接 SqlSugar SqlSugarClient

原文链接: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;
        }

标签:Name,string,入门教程,db,public,student,连接,SqlSugar,SqlSugarClient
From: https://www.cnblogs.com/Dongmy/p/18658125

相关文章

  • SqlSugar 基础知识
    原文链接:https://blog.csdn.net/KingCruel/article/details/98720303  1、实体特性[SugarColumn(IsPrimaryKey=true)] 标识是否为主键[SugarColumn(IsIdentity=true)] 是否为自增长[SugarColumn(ColumnName="id")] 对应数据库表里面的某列[SugarColumn(IsIgnor......
  • docker配置mysql一主多从。宿主机Navicat Premium 15通过不同ip连接
    1.环境准备1.1拉取MySQL镜像dockerpullmysql:8.0解释:从Docker官方镜像仓库中拉取MySQL8.0镜像,确保我们使用最新版本。如果已经拉取,可以跳过这步。1.2创建自定义网络(二选一)1.2.1创建自定义网络(端口不同)dockernetworkcreatemysql-cluster解释:创建......
  • idea连接数据库遇到的问题
    一、情景使用idea连接mysql数据库二、问题及解决办法1、直接连接报错Connectionrefused:connect2、mysql服务是否启动再连接依旧报错3、使用NavicatPremium新建连接,发现需要密码,账号密码已忘记连接时报错1045解决办法:重置密码步骤如下:a、netstopmysql关闭服务b、ne......
  • 代码随想录算法训练营第五十六天|KM108.冗余连接|KM109.冗余连接Ⅱ
    108.冗余连接本题光看题目没理解具体什么意思;看了题解有点明白了;(个人觉得还是力扣的题目描述比较容易理解)题目意思:大概就是加一条边使树结构有环,然后再环中去掉一条边(如果环中多条边可取,则去掉最后一条边),仍然变成一颗树结构;思路:观察两个节点是否再一个集合,如果不在,也可以将......
  • Mysql连接报错排查解决记录
    Mysql连接报错排查解决记录背景: 系统:uosserver-1060e​ 运行环境kvm虚拟机​ mysql版本:5.7.44,forLinux(x86_64)问题现象:宿主机重启后,kvm虚拟机内的mysql服务无法远程连接了。通过不同的客户端工具连接,报错现象分别如下:dbeaver-ce工具连接报错:Cannotreadresp......
  • IDEA中连接redis服务器失败解决方案
    问题分析若在配置文档中redis服务器的ip地址,端口号,密码都正确情况下,IDEA还是无法连接redis服务器,可能是防火墙的问题,需要开放Redis端口解决办法(以MobaXterm为例)我们需要在MobaXterm窗口中,依次输入下列命令:1.检查系统防火墙工具sudosystemctlstatusfirewalld如......
  • 【详解】svn:Can‘tconnecttohost‘*.*.*.*‘:由于连接方在一段时间后没有正确答复或
    目录解决SVN错误:Can'tconnecttohost'...':由于连接方在一段时间后没有正确答复或连接1.检查网络连接2.防火墙和安全软件3.SVN服务器状态4.客户端配置问题5.使用SSH或其他协议6.联系技术支持示例代码代码解释注意事项1.检查网络连接2.检查防火墙设置3......
  • Linux命令行连接蓝牙设备
    Linux命令行连接蓝牙设备查看Bluetooth设备:hciconfig启动一个Bluetooth设备,例如:hci0:hciconfighci0up相关指令查看特定的Bluetooth设备(例如,设备名为hci0):hciconfighci0关闭一个Bluetooth设备(例如,设备名为hci0):hciconfighci0down修改一个Bluetooth设备的......
  • LDAPS 636端口无法连接 报服务器不在工作
     LDAPS636端口无法连接报服务器不在工作的解决办法  AD与第三方系统集成,需要用到389和636两个端口,389是普通连接,636是SSL,二者所能做的操作不同,如果两个端口都已放通,能telnet通,正常是可以直接用389连接的,但连上后只能看都一些基本的属性信息,OU及人员信息无法查看。必须使用6......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,......