2014-07-03 51 views
2

我的網站從文本文件中提取數據到數據庫中。讀取數據後,我轉換字符串值成雙層,使用:同一文化,不同價值的轉換

oracom.Parameters.Add("nstpreisvm", OracleDbType.Double).Value = Convert.ToDouble(_material.Mat_StPreisVm); 

如果我現在檢查數據庫中的結果,(該列預計NUMBER -format),我得到兩個不同的值:在我本地主機通過Visual Studio 2010,數據庫返回10,15 - 但是,如果我在Web服務器上進行該過程,數據庫僅顯示10。這是如何發生的?

我現在實現的網站上有點拉布勒,與當前的文化填充它的頁面加載:

label.Text = Thread.CurrentThread.CurrentCulture.ToString(); 

CurrentCultureen-GB對於這兩種情況,所以這裏有什麼問題嗎?我錯過了什麼?


我的本地窗口是Win7 SP1,帶有德語語言包,服務器是Win2008 R2,標準英文安裝。

+1

什麼是你在哪裏存儲這個值的列期望的類型? – Aymeric

+0

@America它是一個Oracle數據庫,它期望在這一列有一個'NUMBER' – DatRid

回答

1

我們在客戶服務器上有一個類似的問題,其中客戶已經手動更改了該服務器上特定文化的小數點分隔符。當你做了解析

Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator 

我建議明確指定小數點分隔符:您可以檢查此使用

Double.Parse("1,25", new NumberFormatInfo(){ NumberDecimalSeparator = "," }); 
+0

我會試試這個,仍然在會議中。但謝謝你的回答,我稍後會給你反饋! – DatRid

+0

它的工作,非常感謝!從來沒有想過因爲解析一個字符串我必須走這麼遠的路...... – DatRid