Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Existe um bug no SqlDataReader.HasRows ao executar no SQL Server 2008?


Eu sou o pôster original da pergunta referenciada (login perdido) e nunca consegui descobrir. No final, eu atribuí isso ao mau voodoo, sacrifiquei a limpeza e fui com algo como
bool readerHasRows=false;
while(reader.reader())
{
   readerHasRows=true;
   doStuffOverAndOver();
}
if (!readerHasRows)
{
   probablyBetterShowAnErrorMessageThen();
}

O que foi realmente estranho foi que funcionou em uma página aspx e não em outra, apesar dos blocos de código serem quase idênticos ao procedimento armazenado usado.

Escusado será dizer que estou evitando .HasRows de agora em diante;)

EDITAR - Management Studio mostra mensagens na aba de mensagens no procedimento do problema no meu projeto também. Então essa parece ser a causa do problema. Mas por que iria bugar .HasRows??

EDIT2 - Confirmado, alterou a consulta para evitar as mensagens de aviso e .hasrows agora é verdadeiro.