Конечно, хранимой процедурой будет путь, учтите, что вы можете также установить для параметра значение NULL
в хранимой, так что вы игнорируете его, когда он равен нулю, или используете его, когда ему присваивается значение.
со стороны .NET вы также можете выбрать подмножество DataRows DataTable, которые удовлетворяют условию фильтра, примерно так:
DataRow[] rows = myTable.Select("Room = '1'");
но, как я уже сказал, фильтрация на стороне сервера лучше, меньше данных перемещается в сети ....