I have a SqlCommand which may return zero or more rowsets. What happens if, by chance, the SqlCommand would return exactly zero rowsets* and I invoke its ExecuteReader method? Do I get a SqlDataReader that cannot be read, or do I get an exception?
Just in case: Zero rowsets is not the same thing as one rowset containing exactly zero rows.
Your
reader.FieldCountwill be zero for no rowset. If you use a dataset instead of a reader, you will get a null dataset for no rowset.