Ryan is correct about ExecuteNonQuery, but it does return a count of records affected, so you can confirm if the statement actually did something, such as insert, update, or delete. And ExecuteScalar returns a single value, such as a COUNT(*) or a single column with a query you know will return only a single record.
David, what you said makes sense. Although depending on what you’re filtering on, it can still be a view. We have a view that retrieves the current date and filters out records that have a date older than the current date, so it’s dynamic but based on a SQL Server function. But if it’s a user-supplied value, then definitely the WHERECLAUSE is a way to go. We are fairly new to SQL Server and none of us are DB whizzes so we haven’t gotten involved much with creating our own stored procedures yet.
Allen