Насколько я помню (последний раз, когда я пытался, .NET 1.1 был последним, так что я не уверен, что это так), когда вы разговариваете с провайдером Jet OLEDB, вы должны указать параметры в запросе. с вопросительными знаками (параметры не названы и порядок имеет значение):
SELECT [Discs].*
FROM [Discs]
WHERE ([Title]=? OR ? IS NULL) AND
([Type]=? OR ? IS NULL) AND
([ContainerID]=? OR ? IS NULL) AND
NOT (? IS NULL AND ? IS NULL AND ? IS NULL)
(я бы заключил идентификаторы в скобки, чтобы они не вызывали проблем, если один из них будет ключевым словом, вы можете попробовать это перед изменением параметров на вопросительные знаки)
Учитывая, что в вашем запросе неоднократно используются одни и те же параметры, вам, вероятно, придется добавить его несколько раз в коллекцию Parameters
вашего экземпляра OleDbCommand
.