I am working on an application to get data from a MS-SQL server (2005). In the command text, I can pass a sql query like this:
string query = \"SELECT T1.f1,
Or you could use a stored procedure. Using a stored proc will allow SQL to cache the execution plan. I think the same is true of a view. Your first method (ad-hoc query) will probably be the least efficient.