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.