我試圖Replace
符號「,」與「。」。在UPDATE
參數,但我無法解決它。該參數更新SQL DB
中的textBoxes
的數值類型。SqlCommand參數替換
我以爲它可以做到這樣的事情,但parameter
不包含definiton Replace
。有沒有辦法做到這一點?
prikaz.Parameters.AddWithValue("@poc_kli", poc_kli.Text).Replace(',', '.');
我試圖Replace
符號「,」與「。」。在UPDATE
參數,但我無法解決它。該參數更新SQL DB
中的textBoxes
的數值類型。SqlCommand參數替換
我以爲它可以做到這樣的事情,但parameter
不包含definiton Replace
。有沒有辦法做到這一點?
prikaz.Parameters.AddWithValue("@poc_kli", poc_kli.Text).Replace(',', '.');
先解析值;然後在參數中使用鍵入數據。例如:
decimal val = decimal.Parse(poc_kli.Text);
prikaz.Parameters.AddWithValue("poc_kli", val);
,而不是「替換」,你應該使用合適的CultureInfo
解析值時(如果它不同於默認區域性)。爲了簡單起見,我假設你不需要實際上需要指定一種文化,但這只是一個嘗試使SQL Server感到開心。但是,例如:
CultureInfo culture = CultureInfo.InvariantCulture;
// ^^^ or GetCulture, CurrentCulture, etc
decimal val = decimal.Parse(poc_kli.Text, culture);
更妙的是完全數據訪問代碼從UI代碼分開:
decimal val = decimal.Parse(poc_kli.Text);
SomeDatabaseMethod(val, ...other args);
...
public void SomeDatabaseMethod(decimal pocKli, ... other parameters ...)
{
...
prikaz.Parameters.AddWithValue("poc_kli", pocKli);
...
}
的事實,你有一行代碼觸及兩個UI和數據庫(它們完全不相關,或者應該是)應該關心你。
您正在替換代碼中的錯誤位置。試試:
prikaz.Parameters.AddWithValue("@poc_kli", poc_kli.Text.Replace(',', '.'));
我敢打賭,''vs'''是一種嘗試將其格式化以使SQL Server滿意於文化差異;因此,我幾乎肯定完全是錯誤的做法 –
我同意;我已經提出你的評論,因爲它比我的一般教學更有用(它只涉及當前的技術問題)。 –
你必須在文本框上做它prikaz.Parameters.AddWithValue(「@ poc_kli」,poc_kli.Text.Replace(',','。')); – Zaki