OleDbCommand オブジェクトを作成する場合、OleDbParameter オブジェクトが OleDbParameterCollection に追加される順序は、クエリを適切に実行するために重要です。 。これは、CommandType が Text に設定されている場合、OleDbCommand は SQL ステートメントまたはストアド プロシージャにパラメーターを渡すための名前付きパラメーターをサポートしていないためです。
次のクエリを考えてみましょう:
SELECT * FROM tblSomeThing WHERE id = @id AND debut = @dtDebut AND fin = @dtFin
次の順序でパラメータを追加した場合:
cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete; cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin; cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;
結果は得られません。これは、追加されたパラメータの順序が、クエリ内でのパラメータの出現順序と一致しないためです。
クエリを正しく実行するには、順序を尊重する必要があります。クエリ文字列内のパラメータの数。この場合、パラメーターを追加する正しい方法は次のとおりです。
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 オブジェクトはクエリを正確に実行し、目的の結果を返すことができます。
以上がCommandType テキストを使用する場合、OleDbCommand オブジェクトでパラメーターの順序が重要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。