I am using 8.1.7.4 server and a version 8 client. The documentation clearly implies that OracleDataReader HasRows property is valid before the first Read operation (see the example in the docs). Howeve, this is not true.
1 qry.Connection.Open();
2 reader = qry.ExecuteReader();
3 result = reader.HasRows;
4 result = reader.Read();
With the debugger it was easy to see that result (and HasRows)was still false after evaluation of line 3, but changed to true after evaluation of line 4 (inspection of HasRows revealed it had changed to true also).
Greetings
Frans