Хорошо, Linq to SQL станет вашим другом.
Вам нужно изучить синтаксис, и есть несколько различных форм, но вы можете воссоздать свой запрос следующим образом:
var x = from T in db.Table
where [usual where stuff goes here];
Затем вы можете протестировать каждое текстовое поле и выполнить следующие действия:
if (TextBox1.Text != null) x.Where(w => w.field1 == val1);
Приятно то, что вы можете накладывать те предложения Where по одному за раз.Затем просто привяжите свой объект к переменной.
[objectname].Datasource = x;
[objectname].Databind();
Это должно решить вашу проблему.