-1

我们在冰岛的生产数据库(SQL Server 2008R2)使用逗号(,)作为小数分隔符存储 sqlmoney 列值(示例 54,12 和 85,00)。我们的应用程序(C#,ASP.Net)使用 SqlDatareader 读取值,代码如下。

decimal testVal=dr.GetDecimal(idxAmountUSD)//IdxAmountUSD is sqlmoney value

现在它不考虑逗号(,)作为小数分隔符并返回为 5412 和 8500。

实际上它应该返回为 54.12 和 85.12。

4

2 回答 2

0

您需要在创建 SQLDataReader 实例之前定义您的文化:

Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("yourCulture");
于 2012-08-13T07:38:47.883 回答
-2

您需要阅读特定的数据文化,先定义文化,然后再阅读数据

Thread.CurrentThread.CurrentCulture = new CultureInfo("is-IS"); //is-IS is an iceland culture (where , is used inplace of .) .
// following line remains same
decimal testVal=dr.GetDecimal(idxAmountUSD)//IdxAmountUSD is sqlmoney value

上面的代码我没有测试,但逻辑上是正确的。

于 2012-08-13T07:52:56.020 回答