2

私が確認できることから、ほとんどの SQL 実装は「.」を主張します。数値リテラルの小数点。

代わりに「,」を使用するものはありますか? (つまり、多くのヨーロッパ諸国で使用されているように)、または「.」を使用できます。想定される?

私が持っている特定の状況では、ODBC を介してデータベースを呼び出す .NET/ADO.NET があります。ここでは説明しませんが、UPDATE ステートメントは SQL 文字列として送信されます。.NET は、ローカライズに優れており、ユーザーのローカライズ設定で指定された小数点を使用しています。これにより、SQL 構文エラーが発生する可能性があります。特定のケース (英語スタイルの小数点を強制する) で修正するのは簡単ですが、すべてのケースで機能することを確認するか、少なくとも機能しないケースに注意してください。

これは ADO.NET 接続構成の設定である可能性があると思いましたが、何も見つかりませんでした。

4

1 に答える 1

1

コンマはSQLで別のものに使用されるため、どのSQLシステムでも許可されているとは思えません。

あなたの質問に戻ると、もちろん、問題を回避するためにパラメーターを指定して ADO.NET を使用することをお勧めしますが、文字列を連結し、番号から不変の文字列を取得するFormat必要がある場合。CultureInvariant

この拡張メソッドは便利なはずです

public static class DecimalHelpers {
    public static string ToInvariantString(this Decimal Numero) {
        return Numero.ToString("0.####", CultureInfo.InvariantCulture);
    }
}

文字列の連結に反対することを強くお勧めします。これは主要な PITA であり、SQL インジェクション攻撃やその他の問題の原因となる可能性があります。それは 2012 年であり、私たちはそれを超えています。

于 2012-09-06T16:17:26.450 に答える