Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nakid.mkt

Erro buscando dados do Banco.

Recommended Posts

Oi pessoal,

 

Estou com um problema aqui e ninguém da empresa conseguiu resolver.

 

Tenho vários projetos asp.net em um servidor e, de tempos em tempos, uma de qualquer uma dessas aplicações sofre com este mesmo problema descrito a seguir:

 

A aplicação conecta no banco, roda a procedure para retornar dados, joga o resultado para um "Data Table" e, quando o código chega na etapa de eu pegar o valor de uma coluna em uma variável, como:

 

if (MeuDataTable.Rows.Count > 0)
{
  foreach (DataRow i in MeuDataTable.Rows)
  {
      //essa linha dá pau!!!!!
      string nome = i["NOME"].ToString();
  }
}

 

eu recebo erro na tela que minha DataTable "does not contain a property with the name 'NOME'".

 

O curioso é que a ele passa pelos testes "Rows.Count > 0" e entra no "foreach". Isso me diz que a conexão com o banco foi feita e que os valores são retornados.

 

Todas as minhas conexões com o banco de dados são feitas com Try, cath e fechadas no finally, por isso não pode ser estouro de conexões.

 

Se o pool da app é restartado, tudo volta a funcionar normalmente até o erro voltar a ocorrer.

 

Não sei mais o que testar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que não, acredito que o erro no i seja de parâmetros, você verificou se há mesmo um campo com o nome "NOME"?

 

Poste aqui a arquitetura desta tabela, assim fica mais fácil de ajudar.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi pessoal,

 

Estou com um problema aqui e ninguém da empresa conseguiu resolver.

 

Tenho vários projetos asp.net em um servidor e, de tempos em tempos, uma de qualquer uma dessas aplicações sofre com este mesmo problema descrito a seguir:

 

A aplicação conecta no banco, roda a procedure para retornar dados, joga o resultado para um "Data Table" e, quando o código chega na etapa de eu pegar o valor de uma coluna em uma variável, como:

 

if (MeuDataTable.Rows.Count > 0)
{
  foreach (DataRow i in MeuDataTable.Rows)
  {
      //essa linha dá pau!!!!!
      string nome = i["NOME"].ToString();
  }
}

 

eu recebo erro na tela que minha DataTable "does not contain a property with the name 'NOME'".

 

O curioso é que a ele passa pelos testes "Rows.Count > 0" e entra no "foreach". Isso me diz que a conexão com o banco foi feita e que os valores são retornados.

 

Todas as minhas conexões com o banco de dados são feitas com Try, cath e fechadas no finally, por isso não pode ser estouro de conexões.

 

Se o pool da app é restartado, tudo volta a funcionar normalmente até o erro voltar a ocorrer.

 

Não sei mais o que testar.

 

Cara, eu estava com um problema aqui como o seu. Fiz um teste "sem noção" aqui, e, deu certo. Mudei apenas o tipo da atribuição:

 

   //essa linha dá pau!!!!!
   //string nome = i["NOME"].ToString();

   string nome = i["NOME"].Text;

 

Não sei se funcionaria na sua aplicação, pois comigo foi em WinForm. Mas vale a tentativa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas respostas.

 

Por partes:

 

quintelab, eu comecei usando o DataReader, mas fui aconselhado pelos mais experientes na linguagem a usar o DataTable.

 

 

KhaosDoctor, NOME eu dei como exemplo. Esse erro acontece em diversas partes de diversas aplicações, e sempre o campo existe na tabela, tanto que quando o pool restarta a aplicação volta a funcionar novamente.

 

Dagmar Cirino, o erro não acontece apenas com strings, mas sim com ints ou qualquer outro tipo.

 

Agradeço as colaborações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.