1、已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。

There is already an open DataReader associated with this Connection which must be closed first.

或者出现 connection is closed

出现这个错一般是线程安全引起的

解决方案: https://www.donet5.com/Home/Doc?typeId=1224

2.The connection does not support MultipleActiveResultSets

(1)、SqlSugarClient 替换成 SqlSugarScope ,因为SqlSugarScope 是线程安全对象代码容错率高

具体用法: https://www.donet5.com/Home/Doc?typeId=1181

(2)  、异步用法错引起的 ,排查没用Await调用的异步方法

Public void  GetAll(){  异步方法  }//错误
Public async Task GetAll(){  异步方法  }//错误
Public async Task GetAll(){  await  异步方法  }//正确

 

 3. max_allowed_packet  MYSQL

一般提示这个错可能一次更新的内容太多,可以分页操作

db.Utilities.PageEach(allList, 10000 ,pageList=> {
  db.Insertable(pageList).ExecuteCommand();
});

4、实体与表映射出错

出现这个错一般是 数据库中的类型和实体中的类型不一样引起的,可以注释实体类中的字段进行排除哪个字段引起的

5、Only one primary key

当前功能只支持单主键,看看实体类有没有与置主键,并且主键只能有一个,或者数据库是否有主键并且只能有一个

6、未安装或者版本冲突

打开 Web层或者WinFom的项目,查看 App.config 有没有下面这种兼容配置,如果没这种配置这个DLL就会报错,

想办法搞出来,一般NUGET在当前项目安装 SqlSugar然后在安装报错的DLL NUGET会自动添加到app.config

例1:

   
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
      </dependentAssembly>

例2:

  <dependentAssembly>
        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.27.0" newVersion="8.0.27.0" />
   </dependentAssembly>

如果没有先安装SqlSugar,在安装报错dll

7、雪花ID重复

不同电脑 本地或者服务器 要用不同的WorkId ,如果服务器时间回调也要设置WorkId

8、Cannot Open when State is Connecting.

解决方案: https://www.donet5.com/Home/Doc?typeId=1224

9、连接不上数据库

原生能用SqlSugar就能用,一定要用db.CurrentConfig.ConnectionString保证是同一个字段串,并且在同一个程序

//用原代码进行测试
//SqlSerer 
var conn=new SqlConnection(db.CurrentConfig.ConnectionString).Open();
conn.Close();
 
//MySql用
var conn=new MySqlConnection(db.CurrentConfig.ConnectionString).Open();
conn.Close();
 
//不同的数据库不同 ,一般根据DbType+Connection

10、截断二进制

Data too long for column

数据库字段太小引起的

11、特殊表字段名带有.或者()这字符兼容

因为考虑性能,比如数据库里面字段名字叫: 金额(元) ,生在SQL如下 where [金额(元)]=@金额(元) ,字段能转译参数名做不到所有都过滤,

这样参名字会报错,所以ORM提供了AOP来处理这个问题

  db.Aop.OnExecutingChangeSql = (s, p) =>
            {
                foreach (var item in p)
                {
                    if (item.ParameterName.Contains("("))
                    {
                        var oldName = item.ParameterName;
                        //重点看这儿,把参数名变成正常的名字
                        item.ParameterName = item.ParameterName
                                    .Replace("(""_")
                                    .Replace(")""_")
                                    .Replace(".""_");
                        s = s.Replace(oldName, item.ParameterName);
                    };
                }
                return new KeyValuePair<string, SugarParameter[]>(s, p);
            };

 

12、与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。

(1) 出现这个错一般是超过数据库处理上限,可以用异步提升性能,max pool size字符串设置大些

(2) 并发不高情况一般是线程安全引起的, 看文档:偶发错误

13、The connection was not closed. The connection's current state is connecting

看文档:偶发错误

14、参数名有空格特殊符号

对性能会有影响,能局部修改配置就局部,尽量不要全局使用

//全局生效
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
    ConnectionString = $"Data Source={dbFileName};",
    DbType = DbType.Sqlite,
    IsAutoCloseConnection = true,
    MoreSettings = new ConnMoreSettings
    {
        IsCorrectErrorSqlParameterName= true// 5.1.4.111及以上版本
    }
});
 
//局部生效
db.CurrentConnectionConfig.MoreSettings=new MoreSettings(){  IsCorrectErrorSqlParameterName= true}

15、Connect Timeout expired. All pooled connections are in use

并发不高出现这个错一般是线程安全问题

SqlSugar常见问题汇总的更多相关文章

  1. CentOS安装Oracle数据库详细介绍及常见问题汇总

    一.安装前准备 1.软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命 ...

  2. SVN集中式版本控制器的安装、使用与常见问题汇总

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客 ...

  3. H5项目常见问题汇总及解决方案

    H5项目常见问题汇总及解决方案 H5   2015-12-06 10:15:33 发布 您的评价:       4.5   收藏     4收藏 H5项目常见问题及注意事项 Meta基础知识: H5页 ...

  4. Installshield脚本拷贝文件常见问题汇总

    原文:Installshield脚本拷贝文件常见问题汇总 很多朋友经常来问:为什么我用CopyFile/XCopyFile函数拷贝文件无效?引起这种情况的原因有很多,今天略微总结了一下,欢迎各位朋友跟 ...

  5. MVC 网站部署常见问题汇总

    一:TGIShare项目是一个MVC5的网站程序,部署在了IIS上,使用的Windows验证方式,并在本机设置了计划任务定时调用某个地址执行命令.问题汇总如下: 1.Window Server 200 ...

  6. J2EE进阶(十)SSH框架整合常见问题汇总(一)

    SSH框架整合常见问题汇总(一) 前言 以下所列问题具有针对性,但是遇到同类型问题时均可按照此思路进行解决. HTTP Status 404 - No result defined for actio ...

  7. mysql进阶(十六)常见问题汇总

    mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...

  8. 转---CentOS安装Oracle数据库详细介绍及常见问题汇总

    一.安装前准备 1.软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命 ...

  9. (转)CloudStack 安装及使用过程中常见问题汇总

    CloudStack 安装及使用过程中常见问题汇总             在做工程项目中对CloudStack 安装及使用过程中常见的几个问题及如何解决做一个总结.   1.Windows XP虚拟 ...

  10. thymeleaf的常见问题汇总

    thymeleaf的常见问题汇总 1.thymeleaf th:href 多个参数传递格式 th:href="@{/Controller/update(param1=1,param2=${p ...

随机推荐

  1. linux 实时刷新显示当前时间

    同步阿里云时间 ntpdate ntp1.aliyun.com 使用watch命令:周期性的执行一个命令,并全屏显示. watch -n 1 date 即可:每1秒刷新date命令. # 格式 wat ...

  2. UVA - 12096 :The SetStack Computer

    题目大意 用集合模拟计算机操作.每执行完一个操作,输出栈顶的集合大小,操作如下: PUSH:空集合压栈 DUP:将栈顶元素再次压栈 UNION:依次弹栈得a,b,求并集后压栈 INTERSECT:依次 ...

  3. AtCoder Beginner Contest 195 Editorial

    AtCoder Beginner Contest 195 Editorial Problem A - Health M Death(opens new window) 只要检查 \(H\equiv 0 ...

  4. Educational Codeforces Round 100 (Rated for Div. 2) 简单记录

    最近在写Web大作业和期末复习,可能还会有一段时间不会更新blog了 1463A. Dungeon 题意:有3个血量为a,b,c的敌人,现在你每7发子弹能进行一次范围AOE攻击(即一次能集中三人),每 ...

  5. 叮~OpenSCA社区拍了拍您并发来一份开源盛会邀请函

    2023数字供应链安全大会(DSS 2023)将于8月10日在北京·国家会议中心举办.本次大会以"开源的力量"为主题,由悬镜安全主办,ISC互联网安全大会组委会.中国软件评测中心( ...

  6. 聚焦 AIGC,函数计算为 AI 应用插上腾飞翅膀

    6月1日,2023 阿里云峰会·粤港澳大湾区在广州举办,Serverless 加速创新分论坛如约亮相,阿里云函数计算 FC 聚焦 AIGC 应用开发,GPU 性能体验再升级,让 AIGC 应用开发更简 ...

  7. SpringCloud学习 系列十、服务熔断与降级(3-类级别的服务降级)

    系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...

  8. win10系统怎么修改host文件

    1.先根据下面路径找到host文件 C:\Windows\System32\drivers\etc 2.把HOST文件复制一份出来 3.修改完成后,直接替换就可以

  9. sipp3.6 on centos7安装部署

    概述 在VOIP软交换的开发过程中,必然需要对软交换进行批量压测. SIP压测工具一般都是sipp,免费,开源,功能足够强大,配置灵活,优点多. 环境 centos7.9 cmake3.6 sipp ...

  10. Liunx常用操作(八)-sed命令详细说明

    一.sed简介 sed是一种流编编器,它是文本处理中非常中的工具,能够完美的配合正则表达式便用,功物能不同凡响. 处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"( oa ...