<p>It seems like IDataReader.Read() is always true at least one time (If I'm wrong about this let me know.)  So how do you tell if it has no records without just wrapping it in a try/catch?</p>

```
```
if(dr.Read())
{
   //do stuff
}
else
{
 //it's empty
}
```
```
usually you'll do this though:
```
```
while(dr.Read())
{
}
```
```