Esto resulta ser comportamiento inesperado en ExecuteReader()
- Lo más probable es que sea un error. En lo más profundo de ExecuteReader()
se produce algún error aleatorio, lo más probable es que se agote el tiempo de espera de la red, la conexión se cierra y luego se cierra SqlDataReader
se devuelve como si nada hubiera pasado. No es de extrañar la llamada posterior a HasRows
produce una excepción.