0

フランス語 (カナダ) のローカリゼーションを使用して、10 進数値の列を INSERT または UPDATE するために必要な正確な構文を見つけようとして、多くの Google 検索を行ってきました。私はフランス語のネイティブ スピーカーではありませんし、フランス語の照合順序を使用した経験もありません。Latin_General_CI_AS を使用すると、クエリは次のようになります。

INSERT INTO [dbo].[MyTable] (ID, StringField, DecimalField) VALUES (1, 'Some value', 0.5)

しかし、フランス語の照合順序を使用すると、10 進数が0,5代わりに表示0.5され、単純な変換だけで SQL Server がぐちゃぐちゃになります。INSERT クエリは次のようになります (ただし、これは機能しません)。

INSERT INTO [dbo].[MyTable] (ID, StringField, DecimalField) VALUES (1, 'Some value', 0,5)

SQL Server5は、指定されていない列の追加の値と見なします。どうすればこれを機能させることができますか。SQL Server が 10 進数値として認識できるように、数値をラップする文字はありますか?

4

1 に答える 1

0

照合についてではなく、使用される小数点記号についてです。

パラメータクエリを使用する必要があります。パラメーター化されたコマンドを使用している場合、SQL データ プロバイダーは小数点記号を考慮します。

string sqlcom = @"EXECUTE [dbo].[MyProc]  @x";
SqlCommand com = new SqlCommand(sqlcom, MyConnectionX);
com.Parameters.Add("@x", SqlDbType.Decimal);
com.Parameters["@x"].Value = someValue;
com.ExecuteNonQuery();
于 2012-09-25T08:15:51.470 に答える