SQLServer異常:傳入的表格格式資料流(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不會變化(除錯你就能看到),所以發生錯誤。
目前沒有好的解決辦法,只能說在對實體類賦值時判斷,但如果值太多的話你就會判斷不起了。呵呵。
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不會變化(除錯你就能看到),所以發生錯誤。
目前沒有好的解決辦法,只能說在對實體類賦值時判斷,但如果值太多的話你就會判斷不起了。呵呵。
相關文章
- RPC(遠端過程呼叫)詳解RPC
- 【網路協議】TCP的互動資料流和成塊資料流協議TCP
- RabbitMQ 入門 - 遠端呼叫 (RPC)MQRPC
- ssh遠端登入協議協議
- 流媒體傳輸協議之 RTP (上篇)協議
- 流媒體傳輸協議之 RTP(下篇)協議
- 流媒體技術之傳輸協議協議
- 流媒體技術基礎-流媒體傳輸協議(二)協議
- Google遠端過程呼叫-GRPCGoRPC
- 通過 wireshark 抓包瞭解直播流媒體 RTMP 協議基本過程協議
- rdpclip 遠端桌面協議常遇到的問題協議
- dubbo原始碼解析(三十)遠端呼叫——rest協議原始碼REST協議
- sqlserver建立資料流操作來導資料SQLServer
- Wireshark分析器分析資料流過程
- Provider:SSL提供程式,error:0 - 接收到的訊息異常,或格式不正確IDEError
- ARM 匯流排協議協議
- AHB匯流排協議協議
- 關注程式異常流
- 匯流排協議系列——USART協議初探協議
- RCF--RPC(遠端呼叫框架)RPC框架
- 遠端呼叫中介軟體(RPC)RPC
- TCP協議資料格式TCP協議
- dubbo原始碼解析(三十二)遠端呼叫——thrift協議原始碼協議
- dubbo原始碼解析(三十一)遠端呼叫——rmi協議原始碼協議
- Java API——RMIIO入門教程(4)遠端流傳輸示例之RMIIO客戶端碼JavaAPI客戶端
- 流處理器與其他部件協同工作的過程
- go 如何呼叫 sqlserver 帶傳出引數的儲存過程GoSQLServer儲存過程
- linux下遠端傳送檔案命令,通過ssh協議傳輸檔案Linux協議
- DHCP協議格式、DHCP服務搭建、DHCP協商互動過程入門學習協議
- 徒手擼框架--實現 RPC 遠端呼叫框架RPC
- RPC協議實踐入門RPC協議
- 一次資料庫異常的處理過程資料庫
- CAN匯流排協議簡介及其常見的應用領域協議
- 安裝 Windows Service 試圖載入格式不正確的程式Windows
- Java API——RMIIO入門教程(3)遠端流傳輸示例之RMIIO伺服器端原始碼JavaAPI伺服器原始碼
- rabbitmq中文教程python版 - 遠端過程呼叫MQPython
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- rpc協議RPC協議