Yah definitely could be done with a web service. There are some posts here though on a way in code to do a query and use a variable in the Sql statement.
Unfortunately, in the basic database functionality this is not possible unless you load everything. Then you could use the contains to search or filter your list.
Another option would be to create a dataconnection for just asset name, which would be a smaller query. Then they could select from this list and then do the larger query and pull all of the related information.