.net SqlSugarHelper

NuGet安装: SqlSugarCore

cpp 复制代码
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Namespace 
{
    public class SqlSugarHelper
    {
        public string _connectionString = CustomConfigManager.GetConfig("MySql");//MySql连接字符串
        public SqlSugarClient _db = null;

        /// <summary>
        /// 构造函数(初始化)
        /// 调用方法:
        /// SqlSugarHelper sugar = new SqlSugarHelper();
        /// var db = sugar.SqlClient();
        /// var user = db.Queryable<Userinfo>().Where(a => a.Name.Equals(uid) && a.PWD.Equals(pwd)).ToList().FirstOrDefault();
        /// </summary>
        public SqlSugarClient SqlClient()
        {
            if (string.IsNullOrEmpty(_connectionString))
                throw new ArgumentNullException("数据库连接字符串为空");

            _db = new SqlSugarClient(new ConnectionConfig()
            {
                ConnectionString = _connectionString,//数据库连接字符串,见UI的appsettings.json内配置
                DbType = DbType.MySql,//数据库类型
                IsAutoCloseConnection = true,//自动断开连接
                MoreSettings = new ConnMoreSettings()
                {
                    IsWithNoLockQuery = true,//为true表式查询的时候默认会加上.With(SqlWith.NoLock),
                    IsAutoRemoveDataCache = true//为true自动清除缓存
                }
            });
            //输入最终SQL语句...
            _db.Aop.OnLogExecuting = (sql, pars) =>
            {
                var s1 = sql;//断点打在这里看内部生成的sql语句...
            };

            return _db;
        }

    }
}

config文件:

cs 复制代码
{
  //MySql连接字符串
  "MySql": "Server=127.0.0.1;Database=db_test;User ID=root;Password=123456;SslMode=None;allowPublicKeyRetrieval=true;"//开发环境
}

调用举例:

cs 复制代码
    //查询
    public static List<tb_equip> Get_EquipList()
    {
            SqlSugarHelper sugar = new SqlSugarHelper();
            var db = sugar.SqlClient();
            try
            {
                var gsList = db.Queryable<tb_equip>()
                   .Where(a => a.IsUsing == true)//使用中
                   .WhereIF(!string.IsNullOrWhiteSpace(PowerStation), a => a.PowerStation.Equals(PowerStation))//可选条件
                   .ToList();

                return gsList;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Get_TH70M_EquipList() " + ex.Message);//打印结果
                return null;
            }
    }


    //添加
    public static bool tb_tcp_log_add(Socket send, decimal wd_dec, decimal sd_dec, tb_equip equip, string packet, TcpType tcpType)
    {
        SqlSugarHelper sugar = new SqlSugarHelper();
        var db = sugar.SqlClient();
        tb_tcp_log log = new tb_tcp_log();
        log.TCP_IP_STR = send.RemoteEndPoint.ToString();//IP原文
        log.TCP_IP = Tools.SocketFormat(send.RemoteEndPoint.ToString());//IP格式化
        log.UUID = Guid.NewGuid().ToString();//主键(必须)
        log.Type = tcpType.ToString(); //类型

        int cc = db.Insertable(log).ExecuteCommand();//添加到数据库
        Console.WriteLine($"添加到数据库,成功添加{cc}条...");//打印结果
        if (cc > 0)
        {
            WriteLineAndLog("已添加");
        }

        return cc > 0;
    }
相关推荐
唐青枫3 小时前
C#.NET FluentValidation 全面解析:优雅实现对象验证
c#·.net
Aevget9 小时前
DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(二)
.net·wpf·界面控件·devexpress·ui开发·数据网格
从孑开始11 小时前
ManySpeech.MoonshineAsr 使用指南
人工智能·ai·c#·.net·私有化部署·语音识别·onnx·asr·moonshine
玩泥巴的19 小时前
.NET驾驭Word之力:基于规则自动生成及排版Word文档
c#·word·.net·com互操作
专注VB编程开发20年19 小时前
VB.NET多线程排序算法实现:LINQ与正则表达式方法
排序算法·.net·linq
EQ-雪梨蛋花汤1 天前
【踩坑记录】从“正在还原所需的工具包”说起:一次 .NET 工程包还原失败的完整排查实录
.net
喵叔哟1 天前
63.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--预算告警
运维·微服务·.net
专注VB编程开发20年1 天前
VB.NET2003和VB2008可以导入VB6项目
.net·vb.net·vb6·vb2008
喵叔哟1 天前
62.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--自训练ML模型
微服务·架构·.net
追逐时光者1 天前
将 EasySQLite 解决方案文件格式从 .sln 升级为更简洁的 .slnx
后端·.net