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

原文链接: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;
        }
posted @ 2025-01-07 18:26  yinghualeihenmei  阅读(1110)  评论(0)    收藏  举报