The try/catch method typically goes against best practices in regards to null/DbNull values returned by this method however in this case it is still the best approach. Anything else would require just as much or more code then using ExecuteReader() would, which would negate the purpose of this method.