To give you one more idea to try: Use a sql window function to get the total count of all records as an additional column. Syntax for the column should something like this "count(*) over () as total".
SELECT - OVER Clause (Transact-SQL)
But I don't tried it by my self 🙂
If you call SearchByFieldname always with fFieldName as parameter then don't use a parameter because it is totally normal for a method to use fields of it own class.