C# SqlSugar框架的学习使用(三)-- 查询的多种用法

前言

上一篇《C# SqlSugar框架的学习使用(二)-- 类的生成及增删改查的应用》我们已经把SqlSugar的基本的使用方法介绍完了,这篇开始我们就要讲一下复杂的用法,本篇主要就是介绍一下SqlSugar中的查询的多种使用方法。

环境介绍

整体的环境我们还是用上篇的SqlSugarTest的DEMO,数据库也是SQL2008中的那个SumCharge。

数据表  XtMenuAll

我们用的XtMenuAll这个表,这个表主要是系统的功能列表,里面有十几条数据,结构如下图:

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第1张图片

程序 SqlSugarTest

Demo程序还是用我们上篇创建的SqlSugarTest,这次我们主要是介绍查询,所以在窗体主界面中加入了一下ToolBar,然后把不同的查询用都加入进去做按钮,如下图:

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第2张图片

XtMenuAll类

在上一篇中我们通过生成类的方式已经创建出对应的XtMenuAll的类,如下:

using System;
using System.Linq;
using System.Text;


namespace Model
{
    ///
    ///
    ///
    public partial class XtMenuAll
    {
           public XtMenuAll(){


            this.mLast =Convert.ToByte("0");
            this.FormType =Convert.ToString("1");
            this.Ver =Convert.ToString("0");
            this.IsCanUse =Convert.ToString("Y");


           }
           /// 
           /// Desc:
           /// Default:
           /// Nullable:False
           ///            
           public string FunCode {get;set;}


           /// 
           /// Desc:
           /// Default:
           /// Nullable:False
           ///            
           public string FunName {get;set;}


           /// 
           /// Desc:
           /// Default:
           /// Nullable:False
           ///            
           public byte mClass {get;set;}


           /// 
           /// Desc:
           /// Default:0
           /// Nullable:False
           ///            
           public byte mLast {get;set;}


           /// 
           /// Desc:
           /// Default:
           /// Nullable:True
           ///            
           public string DllName {get;set;}


           /// 
           /// Desc:
           /// Default:
           /// Nullable:True
           ///            
           public string DllFun {get;set;}


           /// 
           /// Desc:
           /// Default:1
           /// Nullable:False
           ///            
           public string FormType {get;set;}


           /// 
           /// Desc:
           /// Default:0
           /// Nullable:False
           ///            
           public string Ver {get;set;}


           /// 
           /// Desc:
           /// Default:Y
           /// Nullable:False
           ///            
           public string IsCanUse {get;set;}


           /// 
           /// Desc:
           /// Default:
           /// Nullable:True
           ///            
           public string Remark {get;set;}


    }
}


代码演示

查询所有

        /// 
        /// 查询所有
        /// 
        /// 
        /// 
        private void tsmnuqryall_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls = _db.Queryable().ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);          
                }
                TextShow("查询所有完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第3张图片

查询前5条

        /// 
        /// 查询前5条
        /// 
        /// 
        /// 
        private void tsmnuqry5_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls = _db.Queryable().Take(5).ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }
                TextShow("查询前5条完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第4张图片

无锁查询

        /// 
        /// 无锁查询
        /// 
        /// 
        /// 
        private void tsmnuqrynolock_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls = _db.Queryable().With(SqlWith.NoLock).ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }
                TextShow("无锁查询完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第5张图片

根据主键查询

首先类里面先设置我们的主键定义好

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第6张图片
代码

        /// 
        /// 根据主键查询
        /// 
        /// 
        /// 
        private void tsmnuqrykey_Click(object sender, EventArgs e)
        {
            try
            {
                XtMenuAll menu = _db.Queryable().InSingle("0104");
                TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                TextShow("根据主键查询完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第7张图片

单条查询

单条查询分为Single()和First(),如果使用Single方法返回单条, 实际返回超过1条, 会引发异常, 使用First返回单条不会引发异常, 只返回第一条, 忽略其它的结果.

      /// 
        /// 单条查询
        /// 
        /// 
        /// 
        private void tsmnuqryone_Click(object sender, EventArgs e)
        {
            try
            {
                XtMenuAll menu = _db.Queryable().Single();
                TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                TextShow("单条查询完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }


            try
            {
                XtMenuAll menu = _db.Queryable().First();
                TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                TextShow("单条查询完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第8张图片

联合查询UNION ALL

    /// 
        /// 联合查询UNION ALL
        /// 
        /// 
        /// 
        private void tsmnuqryunion_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls =
                    _db.UnionAll(_db.Queryable(),
                        _db.Queryable()).ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }


                TextShow("联合查询UNION ALL完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第9张图片

IN查询

        /// 
        /// IN查询
        /// 
        /// 
        /// 
        private void tsmnuqryin_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls =
                    _db.Queryable()
                        .In(t=>t.FunCode,new string[]{"0101","0103"})
                        .ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }


                TextShow("IN查询完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第10张图片

NOT IN查询

    /// 
        /// NOT IN 查询
        /// 
        /// 
        /// 
        private void tsmnuqrynotin_Click(object sender, EventArgs e)
        {
            try
            {
                string[] array= {"0101","0103"};
                List menuAlls =
                    _db.Queryable()
                        .Where(t => !array.Contains(t.FunCode))
                        .ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }


                TextShow("NOT IN查询完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第11张图片

条件查询

       /// 
        /// 条件查询
        /// 
        /// 
        /// 
        private void tsmnuqrywhere_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls =
                    _db.Queryable()
                        .Where(t => t.FunCode=="0101"
                                    || t.FunCode=="90")
                        .ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }


                TextShow("条件查询完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第12张图片

使用函数SqlFunc类

SqlFunc类里面有多个查询,可以自己试一下,我们这次只用了开始为XX的查询和包含什么的查询

        /// 
        /// 使用函数SqlFunc类
        /// 
        /// 
        /// 
        private void tsmnuqrysqlfunc_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls =
                    _db.Queryable()
                        .Where(t=> SqlFunc.StartsWith(t.FunCode,"01"))
                        .ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }
                TextShow("使用SqlFunc查询开始为01的数据");


                menuAlls =
                    _db.Queryable()
                        .Where(t => SqlFunc.Contains(t.FunName,"卡"))
                        .ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }
                TextShow("使用SqlFunc查询名称包含《卡》的完成");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第13张图片

SUM  AVG  MAX  MIN的查询

        /// 
        /// SUM AVG MAX MIN的查询
        /// 
        /// 
        /// 
        private void tsmnuqrysum_Click(object sender, EventArgs e)
        {
            try
            {
                int sum = _db.Queryable().Sum(t=>t.mClass);
                TextShow("mClass求合:" + sum);


                int avg = _db.Queryable().Avg(t => t.mClass);
                TextShow("mClass平均:" + avg);


                int max = _db.Queryable().Max(t => t.mClass);
                TextShow("mClass最大:" + max);


                int min = _db.Queryable().Min(t => t.mClass);
                TextShow("mClass最小:" + min);
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第14张图片

Between查询

        /// 
        /// Between查询
        /// 
        /// 
        /// 
        private void tsmnuqrybetween_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls =
                    _db.Queryable()
                        .Where(t => SqlFunc.Between(t.FunCode, "0101", "0104"))
                        .ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }
                TextShow("使用SqlFunc查询0101和0104之间");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第15张图片

排序查询

        /// 
        /// 查询排序
        /// 
        /// 
        /// 
        private void tsmnuqryorder_Click(object sender, EventArgs e)
        {
            try
            {
                List menuAlls =
                    _db.Queryable()
                        .OrderBy(t=>t.FunName,OrderByType.Desc)
                        .ToList();
                foreach (var menu in menuAlls)
                {
                    TextShow("FunCode:" + menu.FunCode + " FunName:" + menu.FunName);
                }
                TextShow("按FunName的降序查询");
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }


C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第16张图片

是否存在

有两种写法:

一是通过where后加上any

二是直接在any中加入lambda表达式

        /// 
        /// 是否存在
        /// 
        /// 
        /// 
        private void tsmnuqryexists_Click(object sender, EventArgs e)
        {
            try
            {
                bool isexists =
                    _db.Queryable()
                        .Where(t => t.FunCode=="02")
                        .Any();
                string msg = isexists ? "存在" : "不存在";
                TextShow("查询FunCode是否存在02:" + msg);


                isexists =
                    _db.Queryable()
                        .Any(t => t.FunCode == "01");
                msg = isexists ? "存在" : "不存在";
                TextShow("查询FunCode是否存在01:" + msg);
            }
            catch (Exception ex)
            {
                TextShow(ex.Message);
            }
        }

C# SqlSugar框架的学习使用(三)-- 查询的多种用法_第17张图片

上面这些就已经把SqlSugar中大部分的查询方式都列出来了,当然SqlFunc的类中还有一些别的方法,可以在使用过程中不断地学习。

-END-

Vaccae的往期经典


OpenCV

《C++ OpenCV案例实战---卡号获取》

《C++ OpenCV案例实战---卡片截取(附代码)》

《C++ OpenCV透视变换---切换手机正面图片》

《C++ OpenCV实战---获取数量》

《C++ OpenCV实战---利用颜色分割获取数量》

《OpenCV4Android NDK方式进行Canny边缘检测》

《OpenCV4Android NDK方式TesserartOCR实时进行识别》

《OpenCV4Android NDK级联方式实时进行人脸检测》


Android

《Android利用SurfaceView结合科大讯飞修改语音实别UI》

《Android关于语音识别的功能实现分析(一)---结构化思维》

《Android关于语音识别的功能实现分析(二)---语义解析》

《Android根据类生成签名字符串》

《Android碎片化布局fragment的实战应用》

《Android中RecyclerView嵌套RecyclerView》

《Android里用AsyncTask后的接口回调》


.Net C#

《C#自定义特性(Attribute)讲解与实际应用》

《C#根据类生成签名字符串(附DEMO下载地址)》

《C++创建动态库C#调用》

《C#与三菱PLC(型号FX2N)串口通讯类》


数据库及其它

《Oracel存储过程写报表实战》

《Delphi轮播视频和图片程序(用于双屏显示程序)》

《SQL随机增加销售数据的脚本编写(附脚本下载地址)》

《SQL Server中With As的介绍与应用(三)--递归的实战应用》

《Oracle通过ODBC连接SQL Server数据库》

《Oracle利用row_number()over()方式解决插入数据时重复键的问题》


长按下方二维码关注微卡智享

format,png

 

你可能感兴趣的:(人工智能,编程语言,数据库,python,sql)