.net core +mysqlSugar(最为简单的增删改查)

首先建立.net Core API - empty 这个就不说了

然后创建新的Controller

记得添加路由

   [Route("api/Users")]

然后在Nuget Packages安装 所需安装包

.net core +mysqlSugar(最为简单的增删改查)_第1张图片

这里是用mysql所以下载如下的mysqlSugarCore

.net core +mysqlSugar(最为简单的增删改查)_第2张图片

 

(切记不要忘记安装Mysql.Data)

 

创建实例化class文件DbContext.cs

 

用于连接数据库,初始化

private DbContext()
        {
        }
        public static string ConnectionString { get; set; }

        public static SqlSugarClient GetInstance()
        {
            var db = new SqlSugarClient(ConnectionString);
            return db;
        }

当然记得引用MySqlSugar的库

然后在appsetting.json中创建连接字符串

 .net core +mysqlSugar(最为简单的增删改查)_第3张图片

点击Startup.csConfigureServices函数中:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            DbContext.ConnectionString = Configuration.GetConnectionString("DefaultConnection");
        }

 

然后创建model层这里我根据数据库中的字段来创建

 .net core +mysqlSugar(最为简单的增删改查)_第4张图片

Ok接下来前期的工作完成了 ,利用sqlSugar进行基本的增删改查操作

Select

创建select接口

[HttpPost("select")]
        public string Select(Users user)
        {
            using (var db = DbContext.GetInstance()) {
                //查询所有数据的前五条并转化为Json格式
                var top5 = db.Queryable().OrderBy(it => it.username).ToJson();
                //简单的条件查询,查询表中所有女生的名字
                var girl = db.Queryable().Where(it =>it.sex ==0).Select("name").ToJson();
                return girl;
            }
        }

点击运行后 postman进行调试可以看到从数据库中取出的前5条数据以JSon的格式返回或者表中女生的名字

.net core +mysqlSugar(最为简单的增删改查)_第5张图片

 

 Insert

接下来尝试用sqlsugar实现增加的操作

 [HttpPost("add")]

        public string Register(Users user)

        {

            //这里直接不加判断就增加一条学生数据

            using (var db = DbContext.GetInstance())

            {

                var status = db.Insert(user);

                //查询刚插入的sex是否有值

                var sex = db.Queryable().Single(it => it.userid == status.ObjToInt()).sex;

                return "status:"+status.ToString() + ",sex:" + sex;

            }

        }

结果

.net core +mysqlSugar(最为简单的增删改查)_第6张图片

发现数据库汇总的确多了一条数据插入成功

顺便来研究一下这个db.Insert()的返回值到底是什么东西

我换了一组值进行再次post

.net core +mysqlSugar(最为简单的增删改查)_第7张图片

可以发现status7 变成了8  我观察数据库发现这就是我的主键自增字段id的值(话说为什么就不是bool值呢)

Delete

然后来进行删除操作

 [HttpPost("delete")]
        public bool RemoveUser(Users user)
        {
            
            using (var db = DbContext.GetInstance())
            {
                //删除根据主键
                // db.Delete(10);

                //主键批量删除
                //db.Delete(new string[] { "100", "101", "102" });

                //假删除
                //db.FalseDelete("is_del", 100);
                //等同于 update school set is_del=1 where id in(100)
                //db.FalseDelete("is_del", it=>it.id==100);

                //同时满足条件删除
                bool status = db.Delete(new Users() { username = "issa2018",password = "123457"});

                return status;
            }
        }

运行postman后发现返回false  我去 难道不是我想的这样??

然后我改变代码

bool status = db.Delete(new Users() { userid = 8});

这样就返回为true了 所以这个方法只能用于主键为参数!!!

最无语的就是我将代码改成如下(密码是错误的)以为他要同时满足条件才能删除

bool status = db.Delete(new Users() { userid =7,password = "123445"});

但返回结果却是true(也就是仍然删除了userid为7的列)

最后发现满足多条件删除得这么来,感觉稍微有点麻烦啊 

bool status = db.Delete("username=@username and password=@password", new { username = user.username,password = user.password});

那我还不如这样

bool status = db.Delete("username='"+user.username+"' and password='"+user.password+"'");

 

Update

先看下如何用sqlsuagr怎么修改吧

[HttpPost("update")]

        public bool EditInfo(Users user)

        {

            

            using (var db = DbContext.GetInstance())

            {

                //支持字典更新,适合动态权限

                //var dic = new Dictionary();

                //dic.Add("name", "第十三条");

                //dic.Add("areaId", "1");

                //db.Update(dic, 13);

 

                //这个更新会把除了更新的东西以外的全部值都为空赋进去因为是吧整个user带进去了

                //var updateStatus = db.Update(new Users { name = user.name, remark = user.remark }, it => it.username == user.username & it.password == user.password);

                //更新name和remark的值

                var updateStatus = db.Update(new { name = user.name, remark = user.remark }, it => it.username == user.username & it.password == user.password);

                return updateStatus;

            }

        }

 

Postman传递数据更新成功

 

下一次会整理更多有用的sqlsugar的功能

 

 

转载于:https://www.cnblogs.com/RikuBlog/p/9559672.html

你可能感兴趣的:(数据库,c#,postman)