记录一次很少见的Sql异常排查,异常内容:

        传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 5 ("@TestValue"): 提供的值不是数据类型 float 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。

详细的异常信息如下:

System.Data.SqlClient.SqlException (0x80131904): 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 5 ("@TestValue"): 提供的值不是数据类型 float 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName)at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

乍一看异常信息提示的很明显,@TestValue参数的值不是有效的float类型。

但是前端调用接口时,传参也指定了有效的数值,困惑~

{testValue: 10
}

经过一顿源码分析,发现原来是由于一些业务逻辑的计算(由于脏数据导致了除0行为),最终导致了@TestValue参数的值变成了NAN,从而导致了上述异常的发生。

顺便来个小测试:

Console.WriteLine($"0/0.0d = {0 / 0.0d}");
// 输出:0/0.0d = NaNConsole.WriteLine($"0/0.0f = {0 / 0.0f}");
// 输出:0/0.0f = NaNint nZero = 0;
//此处需要将除数0声明为变量nZero传入表达式,否则编译不通过
Console.WriteLine($"0/0 = {0 / nZero}");
//引发异常:System.DivideByZeroException:“尝试除以零。”decimal dZero = 0.0m;
//此处需要将除数0.0m声明为变量dZero传入表达式,否则编译不通过
Console.WriteLine($"0/0.0m = {0 / dZero}");
//引发异常:System.DivideByZeroException:“尝试除以零。”

有没有发现猫腻?

  • 0除以浮点类型(float和double)的0 返回的是NAN
  • 0除以十进制类型decimal的0会抛出System.DivideByZeroException异常
  • 0除以整型(有符号和无符号)的0会抛出System.DivideByZeroException异常

传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确相关推荐

  1. 转:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确 .

    近期在做淘宝客的项目,大家都知道,淘宝的商品详细描述字符长度很大,所以就导致了今天出现了一个问题 VS的报错是这样子的  " 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确 ...

  2. 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (“@xx“): 对于类型特定的元数据,数据类型 0x62 (sql_variant)的类型无效。

    传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确.参数 1 ("@xx"): 对于类型特定的元数据,数据类型 0x62 (sql_variant)的类型无效. 解决 ...

  3. com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。

    sqlserver在做批量插入的时候出现这个错误: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC ...

  4. 雅客EXCEL(6)-通用表格格式、销售实际案例(总结之前的知识点)

    文章目录 1.通用表格格式 2 .销售实际案例 1.删除空格 2.添加序号 3.取消合并单元格 4.数据原子化 5.取消乱加表头 6.删除空行 7.检查数据类型并更正 8.文本数据参与运算 9.数据表 ...

  5. 切片器可以设置日期格式?_Excel智能表格——套用表格格式,“一键变身”

    大家好,我是执着于研究Office小技巧的Angie-- Excel表格堪称职场达人必做项,为了追求美观可视化,每次都要手动操作对表格边框.单元格填充.字体大小进行设置,重点是每次自定义设置完,不仅没 ...

  6. 套用表格格式转化为普通区域_学会修改表格格式,让你的报表更美观

    这是一个追求完美的时代,正确记录数据不代表让数据"好看".尤其是数据表需要与他人共享分析时,更应该从审美和人性化的角度考虑如何调整表格格式,使其更方便被浏览. 掌握格式调整原则 数 ...

  7. Excel怎么把横排变竖排,一键转换表格格式

    在工作或者做作业时,制作表格的过程中,有时候制作到一半或者结束后,发现不想要这种格式,那么Excel怎么把横排变竖排?有没有一键转换表格格式的方法呢?小编今天发现了快速转换的方法,让您轻松得到一个全新 ...

  8. 表格文件返回给浏览器下载时不是.xlsx表格格式

    项目场景: 使用POI组件创建表格返回给浏览器进行下载 问题描述 表格文件返回给浏览器下载时不是.xlsx表格格式 解决方案: response.setHeader("Content-dis ...

  9. word自动设置表格格式

    在处理word时,经常会需要调整表格样式,工作比较繁琐,收集整理了自动设置表格格式的宏,代码如下: Sub 设置表格格式()'功能:光标在表格中处理当前表格:否则处理所有表格!Application. ...

最新文章

  1. Win7下用VS2010编译QGIS2.9.0
  2. linux内核博大精深,Linux Kernel里的cpu_to_le32是干啥的?
  3. tomcat9无法登陆控制界面
  4. request库的基本使用
  5. 电容元器件外观视觉检测系统方案设计-东莞康耐德
  6. WINDOWS2003五种备份模式详解
  7. 一次解锁三个BIG分析图制作思路,畅快!
  8. vue.js可视化开发工具_Vue.js开发工具
  9. ansys linux运行_ANSYS2020R1 产品Linux平台安装
  10. 2021年C/C++Linux服务器开发/后台架构师知识体系整理(持续更新中)
  11. 电脑计算机无法找到脚本文件夹,电脑开机老是提醒无法找到脚本文件的处理方法...
  12. 步步高彭雄:弄潮“互联网+零售”从端到端流程开始
  13. 如何设置文件的默认打开方式
  14. luckysheet 只读模式和编辑模式
  15. [TravelNotes] WC 2017 THUWC 2017 游记
  16. BandwagonHost 5个数据中心/机房Ping速度测试亲自体验
  17. 程序员今年必看!!拖更了三年带回了一个抖音,虎牙,哔哩哔哩都在用的库|墙裂推荐
  18. 电脑计算机的符号什么意思,计算机上面的符号代表什么意思  悬赏20
  19. CREO 用最简单的方法做个莫比乌斯带
  20. 手把手带你安装webpack --mac电脑哦~

热门文章

  1. Impala Shell常用命令行选项与常用命令
  2. 【蓝桥杯】入门考试十道练习题
  3. RoaringBitMap在ClickHouse和Spark之间的实践-解决数据仓库预计算多维分析问题
  4. Tomcat 中的可插拔以及 SCI 的实现原理
  5. 微博、腾讯视频(部分)提取器-- 后台Node.js篇
  6. thinkphp执行定时任务定时任务
  7. 教你如何快速安装Pycharm2018——Pycharm2018安装详细教程(附激活软甲+永久破解)
  8. android--graphics
  9. 计算机办公室应用试题,职称考试WORD题库1-职称计算机考试办公应用试卷与试题.pdf...
  10. 论文阅读笔记|NNLP: A Primer on Neural Network Models for Natural Language Processing - Yoav Goldberg 2015