Non-negative number required. (Parameter 'count') 返回

求助
23 204
该叫什么 道叙 发布于2周前
悬赏:5 飞吻

代码很简单:


var dt = _bizDb.Ado.GetDataTable(sql);


查询的sql为:


SELECT concat_ws('_',officeid,tenantid,id) BizKey,ifnull(DATE_FORMAT(advicesendtime,'%Y-%m-%d %T'),'') as 'advicesendtime',appointid,batchnumber,category,channel,creatorid,creatorname,delay,doctorid,doctorname,ifnull(DATE_FORMAT(examdatetime,'%Y-%m-%d %T'),'') as 'examdatetime',examdoctorname,ifnull(DATE_FORMAT(executetime,'%Y-%m-%d %T'),'') as 'executetime',executorid,executorname,followupruleid,follupruleactionid,isinactive+0 as 'isinactive',lastvisitresult,notes,otherproviderid,otherprovidername,pid,DATE_FORMAT(recordcreatedtime,'%Y-%m-%d %T') as 'recordcreatedtime',recordcreateduser,DATE_FORMAT(recordtimestamp,'%Y-%m-%d %T') as 'recordtimestamp',ifnull(DATE_FORMAT(recordupdatedtime,'%Y-%m-%d %T'),'') as 'recordupdatedtime',recordupdateduser,recordversion,satisfaction,sourceid,sourcetype,status,subject,visitcontent,ifnull(DATE_FORMAT(visitdatetime,'%Y-%m-%d %T'),'') as 'visitdatetime',visitresult from followup WHERE date_format(RecordCreatedTime,'%Y-%m-%d')>date_format(DATE_ADD(NOW(),INTERVAL -3 DAY),'%Y-%m-%d') and RecordCreatedTime is not null and RecordCreatedTime!=''and tenantid='3a3f-4fe6-9fe3' and officeid in (192,193)  


具体报错如下:


2020-11-16 15:29:44.5101 | Error | System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'count')

   at SqlSugar.AdoProvider.GetDataSetAll(String sql, SugarParameter[] parameters)

   at SqlSugar.AdoProvider.GetDataTable(String sql, SugarParameter[] parameters)

   at Ares.MonitorPlatform.WebApi.Controllers.OdsRowCheckController.GetMysqlSideEncryptResult(RowCheckRuleRequest request) in D:\Projects\Ares.MonitorPlatform\Ares.MonitorPlatform.WebApi\Ares.MonitorPlatform.WebApi\Controllers\OdsRowCheckController.cs:line 776

   at Ares.MonitorPlatform.WebApi.Controllers.OdsRowCheckController.RunValidationRule(RowCheckRuleRequest request) in D:\Projects\Ares.MonitorPlatform\Ares.MonitorPlatform.WebApi\Ares.MonitorPlatform.WebApi\Controllers\OdsRowCheckController.cs:line 530

   at Ares.MonitorPlatform.WebApi.Controllers.OdsRowCheckController.RunBatchValidationRules(List`1 apps, List`1 batchValidationRules) in D:\Projects\Ares.MonitorPlatform\Ares.MonitorPlatform.WebApi\Ares.MonitorPlatform.WebApi\Controllers\OdsRowCheckController.cs:line 409

   at Ares.MonitorPlatform.WebApi.Controllers.OdsRowCheckController.<Run>b__2_0() in D:\Projects\Ares.MonitorPlatform\Ares.MonitorPlatform.WebApi\Ares.MonitorPlatform.WebApi\Controllers\OdsRowCheckController.cs:line 66 


热忱回答23

  • 补充下,查询数据库为msyql

    0 回复
  • 原因已找到: sqlsugar 5.0.1以及以上版本(只验证了5.0.1.3)会有此问题

    在sqlsugar 5.0.0.15版本中无此问题。。。


    困扰了我两天时间。。。


    烦请大佬及时修复掉.



    0 回复
  • @道叙:你先确定一下是不是.NET CORE 版本 ,


    5.0.0.22 Sqlsugar将mysql驱动升级到高版本,如果是5.0.0.22版本开始出现的问题很可能是就驱动版本问题

    0 回复
  • 还你的sql太复杂了,你可以把你的SQL慢慢的简化进行测试,条件和查询列一个一个删掉进行测试排查,直到一眼知道哪个地方出的问题

    0 回复
  • OK,多谢大佬指点,我从三个层面查一下, 晚点回复结果.


    .net core 是3.1的版本,mysql并未手动引入,用的应该是sqlsugar自带的版本,查了服务器上是8.0.22版本

    0 回复
  • 我来回帖啦,楼主,今天刚验证了 使用.net core 3.1+  sqlsugarcore 5.0.0.15+Mysql 8.0.15是好的,其中mysql并未手动引入,使用的是sqlsugar框架自带

    测试了.net core 2.1和.net 2.2都不会有影响,sqlsugarcore的版本会有影响,感觉可能是Mysql 版本的问题. 

    我使用了sqlsugarcore 5.0.0.15+Mysql 8.0.22也是不行的.

    0 回复
  • image.png

    我在5.0.0.22更新了 mysq.data到8.0.22 

    0 回复
  • 理论上来说驱动不兼容的语句肯定有非常特别的地方

    0 回复
  • 我也发生这个问题

    0 回复

  • 问题加载源码,在下面:

    Task<List<T>> <T>SqlSugarProvider contextIDataReader dataReaderType type = TfieldNames = dataReadercacheKey = typefieldNamesIDataReaderEntityBuilder<T> entytyList = context...cacheKey=>
        cacheResult = IDataReaderEntityBuilder<T>contextdataReaderfieldNames.typecacheResultList<T> result = List<T>dataReader == resultDbDataReaderdataReader.result.entytyList.dataReaderException exCheck.ErrorMessage.ex.result


    0 回复
  • 方法名称:SqlSugar.DbBindAccessory.GetEntityListAsync 这里报这个错误

    0 回复
  • @fate stay night: 是的,我也注意到这点了,8.0.0.22的确有mysql.data的更新

    0 回复
  • @fate stay night: 我记得当时测试了很简单的sql,也有报错,明天我再验证一下,再来回复.

    0 回复
  • @karqical: 这个要咋解决, 是框架问题,还是我要通过升级版本来解决?

    0 回复
  • @道叙:这个是mysql 驱动的问题并且也是最新版本 8.0.0.22, 暂时无法解决,只能你自已排查你的SQL哪个字段或者条件引起的错误

    0 回复
  • 因为我既然升级了驱动,不可能在去降级驱动,你能做的就是 找出你的SQL为什么会出错,不是非常诡异的SQL 驱动是不会报错,或者你能告诉我 不是驱动的问题是 sqlsugar哪个地方引起的

    0 回复
  • 简单来说就是给我一个能重现的DEMO也可以

    0 回复
  • @fate stay night:直接发我就行了

    0 回复
  • 还有一点看一下你们的连接字符串 是不是最简方式


    server=localhost;Database=SqlSugar4xTest;Uid=root;Pwd=haosql 


    有些用户写的一些乱七乱八的配置导致引起的问题

    0 回复
  • @fate stay night:好的, 我这边暂时通过sqlsugar降级能解决.

    0 回复
  • @fate stay night:OK,稍晚点我发给您Demo

    0 回复
  • 问题我找到了,由于在数据模型实体中添加了 public Guid? CreatedUserId { get; set; },当数据库存储的值为null 时,映射失败。添加

    [SugarColumn(IsNullable = true)] 映射也失败。数据库默认映射为char(36),将数据库的char(36)修改为varchar(36),错误消失

    0 回复
  • @karqical:  厉害了,那我这边想要用最新版本需要哪些改动?

    0 回复

版块

学习文档

新注册

发布达人

回贴达人