Ir para conteúdo
Fórum Script Brasil
  • 0

Preencher Objeto .net c#


Alex Rodrigues

Pergunta

Ola,

Estou tendo dificuldades para preencher um objeto, eu criei um método para preenche-lo:

public static Os PreenherObjeto(SqlDataReader reader)
        {
            Os os = new Os();

            os.id = reader.GetInt32(0);
            os.status.Nome = reader.GetString(1);
            os.usuario.Nome = reader.GetString(2);
            os.responsavel.nome = reader.GetString(3);
            os.dataInicial = reader.GetDateTime(4);            
            os.descricao = reader.GetString(5);
            os.setor.Nome = reader.GetString(6);
            os.motivo.nome = reader.GetString(7);
            os.solucao = reader.GetString(8);
            os.nomeUsuario = reader.GetString(9);
            os.patrimonio = reader.GetString(10);
            os.ramal = reader.GetString(11);
            os.Email = reader.GetString(12);


            return os;
        }

quando eu começo a preenche-lo da o seguinte erro:


Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 


Line 52: 
Line 53:             os.id = reader.GetInt32(0);
[b]Line 54:             os.status.Nome = reader.GetString(1);[/b]
Line 55:             os.usuario.Nome = reader.GetString(2);
Line 56:             os.responsavel.nome = reader.GetString(3);

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá, Alex.

Perceba que você está instanciando o objeto OS, mas não está instanciando os objetos contidos nele. No caso, você não não instanciou o objeto status. Não sei como está a sua classe, mas tente algo parecido com isto:

Os os = new Os();

Status st = new Status();
st.Nome = reader.GetString(1);

os.id = reader.GetInt32(0);
os.status = st;
A propósito, procure utilizar o objeto SqlDataReader deste modo (boa prática):
os.id = Convert.ToInt32(reader["ID"]);
os.status.nome = Convert.ToString(reader["STATUS_NOME"]);

Até mais!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...