ホームページ > バックエンド開発 > C++ > OleDbCommand でテキスト コマンドを使用するときにパラメーターの順序が重要なのはなぜですか?

OleDbCommand でテキスト コマンドを使用するときにパラメーターの順序が重要なのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-26 15:38:16
オリジナル
972 人が閲覧しました

Why Does Parameter Order Matter in OleDbCommand When Using Text Commands?

OleDbCommand パラメーターの順序と優先順位

クエリをデバッグしようとしたときに、OleDbCommand 内のパラメーターの順序がクエリに影響を与える可能性があることが判明しました。結果。パラメータが順不同で追加された場合:

cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
ログイン後にコピー

結果は返されませんでした。ただし、パラメータがクエリに表示されたのと同じ順序で追加された場合:

cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
ログイン後にコピー

クエリは適切に機能しました。

この矛盾は、OleDbCommand が名前付きコマンドをサポートしていないという事実に起因します。テキストコマンドのパラメータ。 MSDN に記載されているとおり:

OLE DB .NET プロバイダーは、CommandType が Text に設定されている場合に、SQL ステートメントまたは OleDbCommand によって呼び出されるストアド プロシージャにパラメーターを渡すための名前付きパラメーターをサポートしていません。この場合、疑問符 (?) プレースホルダーを使用する必要があります。

したがって、OleDbCommand でテキスト コマンドを使用する場合、パラメーターをコレクションに追加する順序が重要です。順序は、コマンド テキスト内のプレースホルダー疑問符の順序に直接対応する必要があります。

以上がOleDbCommand でテキスト コマンドを使用するときにパラメーターの順序が重要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート