为什么 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 是 Microsoft Access 数据库中的查询