Hola.
Lo que tendrías que hacer mejor es crear un procedimiento almacenado y que le mandes parametros. Entonces el procedimiento almacenado si algunos de los parametros es nulo o no entonces haras un where o no. Para eso vas a tener que usar en el procedimiento almacenado transact sql, fijate estos ejemplos:
http://www.devjoker.com/contenidos/T...nsact-SQL.aspx