C# C TableAdapter可选WHERE子句
我在QueryBuilder中有这样一个查询:C# C TableAdapter可选WHERE子句,c#,sql,datatable,C#,Sql,Datatable,我在QueryBuilder中有这样一个查询: SELECT Items FROM Tables WHERE (Transactions.transaction_type = ? AND Items.designation LIKE '%'+?+'%' AND Transactions.transaction_date >= ? AND Transactions.transaction_date <= ? AND Items.item_number = ?) 但是,
SELECT Items FROM Tables
WHERE (Transactions.transaction_type = ? AND
Items.designation LIKE '%'+?+'%' AND Transactions.transaction_date >= ?
AND Transactions.transaction_date <= ? AND Items.item_number = ?)
但是,我并不总是希望按项目编号进行筛选,因此:是否可以临时忽略WHERE子句,或者像在指定参数中那样设置空值,而不在设计器中创建单独的查询?现在开始:
SELECT Items FROM Tables
WHERE Transactions.transaction_type = @TransatctionType AND
Items.designation LIKE '%'+ @Designation +'%'
AND Transactions.transaction_date >= @DateFrom
AND Transactions.transaction_date <= @DateTo
AND (@ItemNumber IS NULL OR Items.item_number = @ItemNumber)
不创建新查询的原因是什么?在这种情况下,代码更易于维护
SELECT Items FROM Tables
WHERE Transactions.transaction_type = @TransatctionType AND
Items.designation LIKE '%'+ @Designation +'%'
AND Transactions.transaction_date >= @DateFrom
AND Transactions.transaction_date <= @DateTo
AND (@ItemNumber IS NULL OR Items.item_number = @ItemNumber)