none
Referência de objeto não definida para uma instância de um objeto.É um erro comum, mas não achei RRS feed

  • Pergunta

  • Pessoal,

    Tenho uma página que insere no banco e obtem as Ids para inserir na tabela associativa os campos @CodigoPessoa,@codEndereco.

    Já debuguei e os dois campos não estão vazios nem a query string, porém a mensagem de erro do título do tópico é exibida após exeção sem tratamento.

    Sei que a mensagem é quando algo inexistente é referenciado, mas tudo está preenchido corretamente.Perdi umas 5 horas nisso e ainda não resolvi.Agradeço quem der uma força!

    Segue codigo:

    //o método addParametros insere um parametro SQL

    AcessoSqlServer.AddParametros("@codEndereco",intEndereco);



    AcessoSqlServer.AddParametros("@CodigoPessoa",intCodigoPessoa);


    strSqlQuery = "EXEC _SP_PESSOA_FISICA_ENDERECO_INSERE @CodigoPessoa,@codEndereco";
                AcessoSqlServer.ExecutarManipulacao(CommandType.Text,strSqlQuery);


    terça-feira, 7 de fevereiro de 2012 23:23

Respostas

  • PESSOAL, SINCERAMENTE...PERDI 4 DIAS NISSO, NÃO ACHEI O PROBLEMA, A CONSULTA EXECUTAVA UMA PROCEDURE, FIZ UM INSERT NA MÃO VIA VISUAL, DEPOIS VOLTEI A PROCEDURE E O VISUAL PAROU DE DAR PAU.

    VALEUU!!!!!


    • Marcado como Resposta Davi Igor sábado, 11 de fevereiro de 2012 22:08
    • Editado Davi Igor sábado, 11 de fevereiro de 2012 22:09 FALTOU...
    sábado, 11 de fevereiro de 2012 22:08

Todas as Respostas

  • Davi,

    Esse erro indica que você tentou utilizar um objeto de uma classe que não foi definido ou possui um valor inválido.

    Faça o processo de depuração para encontrar o momento exato que a exceção é lançada, identificado a linha onde o objeto inválido está sendo usado.

    Abraços!

    terça-feira, 7 de fevereiro de 2012 23:41
  • Eduardo,

    A linha de erro no debug é esta:

     AcessoSqlServer.ExecutarManipulacao(CommandType.Text,strSqlQuery);

    o método ExecutarManipulacao é usado duas vezes antes, mas somente essa vez aponta erro.

    terça-feira, 7 de fevereiro de 2012 23:50
  • Quando o erro ocorre, verifique se o objeto "AcessoSqlServer" está nulo ou com valor inválido.

    Veja também se o erro não está ocorrendo dentro da rotina "ExecutarManipulacao". Durante a depuração, quando chegar nesta linha, pressione F11 ao invés de F10.

    Abraços!

    quarta-feira, 8 de fevereiro de 2012 00:00
  • Verifique se: o objeto AcesoSqlServer foi instanciado. se não foi, instancie antes de chamar o método AcessoSqlServer.ExecutarManipulacao(CommandType.Text,strSqlQuery);

    • Editado Renato Coqueiro quinta-feira, 9 de fevereiro de 2012 10:12
    • Sugerido como Resposta Renato Coqueiro quinta-feira, 9 de fevereiro de 2012 11:15
    quarta-feira, 8 de fevereiro de 2012 23:47
  • Eduardo,

    Debuguei com o f11, o método ExecutarManipulacao retorna um object que recebe o resultado do banco.Sei que a procedure executada retorna true se ok, o object consegue receber um valor booleano?

    Se não, terei que achar outra forma.

    quinta-feira, 9 de fevereiro de 2012 23:46
  • já foi instanciado.O problema ocorre no executeScalar(), dai entre para otratamento catch().
    sexta-feira, 10 de fevereiro de 2012 00:15
  • PESSOAL, SINCERAMENTE...PERDI 4 DIAS NISSO, NÃO ACHEI O PROBLEMA, A CONSULTA EXECUTAVA UMA PROCEDURE, FIZ UM INSERT NA MÃO VIA VISUAL, DEPOIS VOLTEI A PROCEDURE E O VISUAL PAROU DE DAR PAU.

    VALEUU!!!!!


    • Marcado como Resposta Davi Igor sábado, 11 de fevereiro de 2012 22:08
    • Editado Davi Igor sábado, 11 de fevereiro de 2012 22:09 FALTOU...
    sábado, 11 de fevereiro de 2012 22:08