As a general rule, we do not use stored procedures that return record sets. Is there some reason why you cannot do the same thing with a SQL view?
At this point it is just ADO.NET code. Create an IDbCommand object, set the CommandText and call ExecuateScalar. The SQL could be as simple as "select dbo.fnXXXXXXXXXXXX()".