Аз съм оригиналният автор на посочения въпрос (загубено влизане) и никога не успях да го разбера. В крайна сметка го отдадох на лошо вуду, пожертвах спретнатостта и избрах нещо като
bool readerHasRows=false;
while(reader.reader())
{
readerHasRows=true;
doStuffOverAndOver();
}
if (!readerHasRows)
{
probablyBetterShowAnErrorMessageThen();
}
Това, което беше наистина странно, беше, че работи в една aspx страница, а не в друга, въпреки че кодовите блокове са почти идентични в лентата, използвана от съхранената процедура.
Излишно е да казвам, че от сега нататък избягвам .HasRows;)
РЕДАКТИРАНЕ - Management Studio показва съобщения в раздела за съобщения относно проблемната процедура и в моя проект. Така че това изглежда е причината за проблема. Но защо ще затрудни .HasRows??
РЕДАКТИРАНЕ 2 - Потвърдено, променена заявката, за да се избегнат предупредителните съобщения и .hasrows вече е вярно.