Questo è un comportamento imprevisto in ExecuteReader()
- molto probabilmente un bug. Nel profondo di ExecuteReader()
si verifica un errore casuale, molto probabilmente un timeout di rete, la connessione viene chiusa e quindi un SqlDataReader
chiuso viene restituito come se nulla fosse. Non c'è da stupirsi che la successiva chiamata a HasRows
produce un'eccezione.