[英]How to convert sql type double-precision in c#
我有一個數據庫訪問權限,其中一個字段是雙精度的。 通常,如果我在文本框1.71或1,71中設置,則數據庫中的字段應包含1.71。
但是如果我執行查詢,acces'field的值是171 !!
public const string QUERY =
@"UPDATE TBLART
SET TBLART.COST = @cost
WHERE TBLART.CODE= '1'";
var param = new DynamicParameters();
var cost = totalCost.Replace(',', '.'); //totalCost is a textbox
param.Add("cost", Double.Parse(cost), DbType.Double);
gsmconn.Execute(QUERY, param);
我錯了什么? 謝謝。
double.Parse
默認使用當前線程的文化。 我懷疑你現在的文化是用“。” 作為分組分隔符。
兩種選擇:
Replace
,但在解析時指定CultureInfo.InvariantCulture
如果我在Windows窗體中正確記住,您可以將double屬性綁定到文本框,它將自動處理解析和轉換。 您不應該手動從字符串解析為double。
這個問題已經由.NET框架解決了。
另一個建議是,您的數據訪問代碼不應該進行任何解析。 這應該在更高層進行。 但最好把它留給框架。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.