Replace
「、」を「。」で署名しようとしました。パラメータについてUPDATE
ですが、解決できません。このパラメータは、 から数値型を更新しtextBoxes
ますSQL DB
。
このようなことができると思いましたがparameter
、定義は含まれていませんReplace
。それを行う方法はありますか?
prikaz.Parameters.AddWithValue("@poc_kli", poc_kli.Text).Replace(',', '.');
Replace
「、」を「。」で署名しようとしました。パラメータについてUPDATE
ですが、解決できません。このパラメータは、 から数値型を更新しtextBoxes
ますSQL DB
。
このようなことができると思いましたがparameter
、定義は含まれていません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 とデータベース (完全に無関係、または無関係であるべき) の両方に触れる 1 行のコードがあるという事実は、あなたに関係するはずです。
コード内の間違った場所で置き換えています。試す:
prikaz.Parameters.AddWithValue("@poc_kli", poc_kli.Text.Replace(',', '.'));