[英]C# return data differ formatting from T-SQL exec for decimal and DateTime
我正在使用以下代碼調用存儲過程以將數據插入 DataTable:
DataTable dt = new DataTable();
SqlConnection scConn = new SqlConnection("ConnectionString");
SqlDataAdapter sd = new SqlDataAdapter("Store_Procedure_Name", scConn);
sd.SelectCommand.CommandType = CommandType.StoredProcedure;
sd.Fill(dt);
通過 T-SQL 執行的結果集如下:
UserId is int , PurchaseDate is DateTime and Amount is Decimal(20,2)
| UserId | PurchaseDate | Amount
| 1 | 2019-10-31 00:00:57.617 | 35.00
在通過上面的代碼調用 C# 之后,我檢查了 C# 的 DataTable,數據不同。
| UserId | PurchaseDate | Amount
| 1 | 2019-10-31 00:00:57 SA | 35,00
我檢查了我的 SQL 服務器和我的本地 PC 區域是相同的,即美國。
該代碼應用於 web 應用程序,我不知道 SA 是如何附加到 DataTable PurchaseDate 的,也不知道為什么 Amount 值來自(點)。 變成(逗號),我相信這可能是文化問題,但我有 go 通過機器區域和文化設置是相同的。
想知道以前是否有人遇到過同樣的問題?
我不確定是什么導致了這個問題。 但要擺脫這個問題,您可以(作為輔助/臨時解決方案)將其轉換為存儲過程中的“nvarchar”數據類型。 字符串數據類型是不同環境之間數據交換最兼容的數據類型之一,也完全沒有攔截問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.