簡體   English   中英

C# 返回數據與 T-SQL exec 的十進制和 DateTime 格式不同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM