sql >> Base de Datos >  >> RDS >> Sqlserver

¿Hay un error en SqlDataReader.HasRows cuando se ejecuta en SQL Server 2008?

Soy el autor original de la pregunta de referencia (inicio de sesión perdido) y nunca logré resolverlo. Al final lo atribuí al mal vudú, sacrifiqué la pulcritud y opté por algo como

bool readerHasRows=false;
while(reader.reader())
{
   readerHasRows=true;
   doStuffOverAndOver();
}
if (!readerHasRows)
{
   probablyBetterShowAnErrorMessageThen();
}

Lo que fue realmente extraño fue que funcionó en una página aspx y no en otra a pesar de que los bloques de código eran casi idénticos a los del procedimiento almacenado utilizado.

No hace falta decir que evitaré .HasRows a partir de ahora;)

EDITAR - Management Studio también muestra mensajes en la pestaña de mensajes en el procedimiento del problema en mi proyecto. Así que esa parece ser la causa del problema. Pero, ¿por qué molestaría a .HasRows?

EDITAR2 - Confirmado, modifiqué la consulta para evitar los mensajes de advertencia y .hasrows ahora es verdadero.