2011-09-27 88 views
0

我想將十進制值傳遞給數據庫表。當我送價值1.5數據庫,然後保存價值爲15將十進制值傳遞給數據庫的問題(Access)

Code: 

txtKm.Text="1,5"; 
zelezniceDataSet.VozniRediRow row; 
row.Km = decimal.Parse(txtKm.Text); 

zelezniceDataSet.VozniRedi.AddVozniRediRow(row); 
vozniRediTableAdapter.Update(zelezniceDataSet.VozniRedi); 

當調試十進制解析值是正確的(1.5)

回答

0

你可能想看看decimal.Parse的overloaded form那接受文化特定的格式選項。我的猜測是decimal.Parse將逗號看作千位分隔符,並將其刪除。

0

在我看來,decimal.Parse忽略了逗號......如果你傳遞「1.5」,那麼保存的值是否正確?如果是這樣,那麼你需要使用文化在解析Decimal.Parse(String, NumberStyles)時使用的重載,併爲您正在使用的語言傳遞正確的數字樣式。

編輯...更多信息..測試

decimal.Parse(test, CultureInfo.GetCultureInfo("EN-us").NumberFormat); 

將輸出15 = 「1.5」,因爲在英語中 「」 char是千位分隔符

decimal.Parse(test, CultureInfo.GetCultureInfo("NL-nl").NumberFormat); 

會對於測試輸出1.5 =「1,5」,因爲在荷蘭「」 char是小數分隔

希望這有助於:)

+0

如果通‘1.5’,那麼這是相同的(15) – PATO7

+0

如果解析的值是正確的,當你斷點時,它必須是調用中的某些東西來保存到數據庫。你的列設置爲十進制類型嗎?在解析之後,row.Km是否包含正確的值? – iDevForFun

+0

是的,列設置爲十進制類型。 row.Km也包含正確的值。 – PATO7