Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

È presente un bug in SqlDataReader.HasRows durante l'esecuzione su SQL Server 2008?

Sono il poster originale della domanda di riferimento (accesso perso) e non sono mai riuscito a capirlo. Alla fine l'ho attribuito a un cattivo voodoo, ho sacrificato la pulizia e ho optato per qualcosa come

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

La cosa davvero strana era che funzionava in una pagina aspx e non in un'altra nonostante i blocchi di codice fossero quasi identici alla procedura memorizzata utilizzata.

Inutile dire che d'ora in poi eviterò .HasRows;)

MODIFICA - Management Studio mostra anche i messaggi nella scheda dei messaggi sulla procedura del problema nel mio progetto. Quindi sembra essere la causa del problema. Ma perché dovrebbe infastidire .HasRows??

EDIT2 - Confermata, modificata la query per evitare i messaggi di avviso e .hasrows ora è vero.