I ask the above question because I am seeing something property HasRows in the QuickWatch window..
I am modifying someone else's code, and need to follow the patterns established. I have to query a SQL Server table to retrieve a row from a configuration table, and decided to first code it in a test console app. I also decided to use the SQLClient types, and made use of property HasRows:
....
using (SqlDataReader rdr = cmd.ExecuteReader())
{
if (rdr.HasRows)
{
....
When I went to move the code to the other project, I noticed that IDataReader was used, and Intellisense said that the HasRows property wasn't available, so I used a while loop, even though I only have one row returning:
....
using (IDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
....
However when I performed a quick watch on the IDataReader rdr, I saw the HasRows property!
So can I easily get to the HasRows property for the IDataReader? If it really exists?

No you can't. HasRows is an abstract method of DbDataReader and IDataReader don't have it. Even so DbDataReader implements IDataReader it is implemented inside DbDataReader and not in interface itself.
Use DbDataReader in your code instead of interface.