3

DB に 1 つのテーブルがあり、uniqueidentifier が null 型ではない 2 つの列があります。次のように、asp.net c# からそのテーブルに行を挿入しようとしています。

sqlCmd.CommandText = string.Format("Insert Into Member(MemberNo,MemberEmpId,...) values({0},{1},... )", MemNo, MemEmpNo, ...);

次の例外がスローされます。

「浮動小数点値 '24e46222' はコンピューター表現 (8 バイト) の範囲外です。'a8c' 付近の構文が正しくありません。浮動小数点値 '6664e7925' はコンピューター表現 (8 バイト) の範囲外です。」

私はこのエラーについてグーグルで検索し、参照を取得しました。それを試しましたが、それでも同じエラーが発生します。誰かがこれを解決するのを手伝ってくれませんか。これ以外に何も見つかりません。

前もって感謝します!

4

3 に答える 3

7

Guid に引用符がありません。そのため、エラーが発生していました。SQLインジェクションやこのような問題(引用符の欠落など)を避けるために、実際にはパラメーター化されたクエリを使用する必要があります

あるべきです(ただし、お勧めできません)

values({0},'{1}',... )  //<-- see the added quotes around the Guid part

理想的には、パラメータ化されたものを使用する必要があります

values(@id,@guid,... ) //<--

値の設定

cmd.Parameters.AddWithValue("@id", someValueHere);
cmd.Parameters.AddWithValue("@guid", someGuidValueHere");
于 2013-05-20T12:39:20.470 に答える