SQLServer异常:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。-阿里云开发者社区

开发者社区> wangccsy> 正文

SQLServer异常:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。

简介: C#在进行SQL Server数据库插入的时候,发生如下的问题(异常) ,从网上也看到很多朋友遇到这样的问题。System.Data.SqlClient.SqlException (0x80131904): 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。
+关注继续查看
C#在进行SQL Server数据库插入的时候,发生如下的问题(异常) ,从网上也看到很多朋友遇到这样的问题。
System.Data.SqlClient.SqlException (0x80131904):
传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 22 ("@p19"): 提供的值不是数据类型 real 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。
基本可以总结的就是插入的某个值的精度大于数据库类型的精度,从而发生了异常。
不管你是用JDBC还是LINQ还是其它的什么,最好的办法是输出你的SQL语句,这样你就能很清晰的判断出是哪个字段超长了。
我由遇到的问题就是我的一个real类型字段超长了。
在C#中值是1.98E-41,而real只能存放1.0E-38的值。
在C#中就算你强制转换(float)doublevalue,其实在内存中还是1.98E-41不会变化(调试你就能看到),所以发生错误。
目前没有好的解决办法,只能说在对实体类赋值时判断,但如果值太多的话你就会判断不起了。呵呵。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mysql,sqlserver数据库单表数据过大的处理方式
经常混迹于技术社区,频繁看到这个题目,今天干脆在自己博客重复一遍解决办法: 针对mysql,sqlserver等关系型数据库单表数据过大的处理方式 如果不是阿里云的分布式数据库 DRDS 那种多机器集群方案的话: 先考虑表分区 ;然后考虑分表 ;然后考虑分库。
1747 0
方便查看数据表和字段的SQL语句(适用于SQLServer2000)
  经过对SQLServer2000系统表的分析,写出了以下两个SQL语句。可以把这两个语句分别建为两个“视图”,方便查看用户数据表和字段的信息。1、列出所有的用户数据表:SELECT TOP 100 PERCENT o.
534 0
SQLServer日期格式化
原文:SQLServer日期格式化   0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)       1   101   美国   mm/dd/yyyy       2   102   ANSI   yy.
830 0
C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据
#region 帮助实例:SQL 批量插入数据 多种方法 /// /// SqlBulkCopy往数据库中批量插入数据 /// /// 数据源表 /// 服务器上目标表 /// 创建新的列映射,并使用列序号引用源列和目标列的列名称。
1937 0
2016 Excel 展示 Sqlserver数据并制作图表
第一步:打开Excel,操作如下图: 第二步:单击“来自SQL Server”,如下图: 第三步:输入服务器名称或者IP、用户名和密码,点击下一步;如下图: 第四步:选择数据库和对应的表或者视图,点击下一步,如下图: 第五步:选择文件存放位置,点击完成,如下图: 第六步...
1074 0
silverlight + wcf(json格式) + sqlserver存储过程分页
silverlight并没有提供现成的分页控件,百度了一圈,也没有发现aspx中好用的类似AspNetPager成熟控件,网上现有的一些分页代码,很多也是基于1.0版本的,silverlight2.0的并不多,自个儿琢磨了一下,发现自己弄一个也并非难事,思路和主要代码分享如下: 1.
794 0
SQL SERVER导出特殊格式的平面文件
原文:SQL SERVER导出特殊格式的平面文件    有时候我们需要将SQL SERVER的数据一次性导入到ORACLE中,对于数据量大的表。我一般习惯先从SQL SERVER导出特殊格式的平面文件(CSV或TXT),然后用SQL*Loader装载数据到ORACLE数据库。
781 0
使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历
原文:使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况。存储过程并没有数组、列表之类的参数类型,使用XML类型可妥善解决这个问题。
1008 0
SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
原文 http://www.cnblogs.com/ynbt/archive/2012/07/16/2593389.html 1.查询数据库中的所有数据库名: SELECT Name FROM Master.
690 0
+关注
wangccsy
前一个帐号wangccsy@126.com不知道怎么的就成了企业帐号,改不成个人。所以重新注册了一个个人帐号。老程序员。精通JAVA,C#,数据库,对软件开发过程和流程熟悉。考取系统分析师,项目管理师和系统架构设计师等软件资格考试认证。愿意和大家一起前进。
984
文章
391
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载