QueryBuilderがクエリを変更するのはなぜですか?回避策はありますか?
以下のクエリを入力すると、QueryBuilderはクエリを以下のより複雑なバージョンに変更し、FillByメソッドに追加のパラメーターを必要とします。追加のパラメーターがあると、変更されたクエリが指数関数的に複雑になります。
入力:
SELECT prop, lot, type, created_on, done
FROM TestSelection
WHERE (prop=? OR '_NO_PROP_'=?) AND (lot=? OR '_NO_LOT_'=?)
変更:
SELECT prop, lot, type, created_on, done
FROM TestSelection
WHERE (prop = ?) AND (lot = ?) OR
(prop = ?) AND ('_NO_LOT_' = ?) OR
(lot = ?) AND ('_NO_PROP_' = ?) OR
('_NO_LOT_' = ?) AND ('_NO_PROP_' = ?)
目標:ユーザーが小道具、ロット、またはその両方で検索できるようにします。私の実際のプログラムは、いくつかの追加フィールドでクエリを実行します。
ノート:
- WinFormsプロジェクト(該当する場合はVB.NET)
- TestSelectionは、MicrosoftAccessデータベースのクエリです。