none
C# Entity RRS feed

  • Pergunta

  • Bom dia Pessoa,

     Estou com uma dificuldade de entender o porque a leitura abaixo só retorna null.

     utilizei varias forma e não consegui encontra a solução.

    segue a forma como estou executando.

     public ActionResult Cadastro(string cpf)
            {
                ViewBag.Estados = new SelectList(estados, "Sigla", "Nome");

                if (cpf != null)
                {
                     Pessoa pessoas = new Pessoa();
                     pessoas = db.Pessoas.Find(cpf);

                    // var pessoas = db.Pessoas.Where(n => n.CPF.Contains(cpf)).ToString();
                    // var pessoa = db.Pessoas.Where(p => p.CPF == cpf);
                    //var pessoas = db.Pessoas.ToList();
                    // pessoas = pessoas.(p => p.CPF == cpf).ToString();
                    //pessoas = db.Pessoas.Find(cpf).ToString();

                    return View(pessoas);

                }
                return View(new Pessoa());
            }

     Obrigado pela ajuda.

    segunda-feira, 8 de abril de 2019 13:02

Respostas

  • Olá, vamos lá.. tenta o código...

    var pessoas = db.Pessoas.AsEnumerable().FirstOrDefault(p => Convert.ToInt64(p.CPF.Replace(".","").Replace("-","")) == Convert.ToInt64(cpf.Replace(".","").Replace("-","")));


    Se ajudou, marque como resposta! Obrigado.

    terça-feira, 9 de abril de 2019 15:52
  •      Pequeno detalhes..   

        Penso que me  baseei   pela sintaxe do sql     onde  a asp simples conta...

      mas , enfim.   conseguimos.. 

      abraços

      obrigado.

     

    terça-feira, 9 de abril de 2019 19:32
  • Bom dia Leonardo,

      Coloquei  a informação invertida .

    Achei o  erro. 

     $('#dataTable tbody').on('click', 'tr', function () {
                    var data = table.row(this).data();
                    var url = "/Pessoas/Cadastro/?cpf=" + data[0]   <---  correto valor passado   999-999-999-99
                    window.location.href = url;

       var url = "/Pessoas/Cadastro/?cpf='" + data[0] +"'" <---- errado valor passado  '999-999-999-99'

      Asp  simples contava como parte do cpf   e por isso  retornava como null

    Ótimo dia,


    quarta-feira, 10 de abril de 2019 11:37

Todas as Respostas

  • Olá, tenta o código...

     public ActionResult Cadastro(string cpf)
            {
                ViewBag.Estados = new SelectList(estados, "Sigla", "Nome");
    
                if (cpf != null)
                {
                     Pessoa pessoas = new Pessoa();
    
                     pessoas = db.Pessoas.FirstOrDefault(p => p.CPF == cpf);
    
                    return View(pessoas);
    
                }
                return View(new Pessoa());
            }


    Se ajudou, marque como resposta! Obrigado.

    segunda-feira, 8 de abril de 2019 18:51
  • Boa tarde Leonardo, 

    Continua com retorno Null .

    elaborei  uma sequencia de passos  para  demonstrar que há informação no obj pessoa  

    porem ao usar todas aquelas possibilidades  retorna null

    Evidencias

    Obrigado


    segunda-feira, 8 de abril de 2019 20:50
  • Olá, tenta o código...

    pessoas = db.Pessoas.FirstOrDefault(p => p.CPF.Replace(".","").Replace("-","") == cpf.Replace(".","").Replace("-",""));
    


    Se ajudou, marque como resposta! Obrigado.

    segunda-feira, 8 de abril de 2019 21:21
  • Leonardo não deu..

    Bem,   agradeço  ,vou tentar descobrir  o porque.. 

    Obrigado pelo apoio

    segunda-feira, 8 de abril de 2019 22:36
  • Olá, não defina o tipo da variável pessoas... print o conteúdo de "cpf" e "pessoas"... tenta o código...

     public ActionResult Cadastro(string cpf)
            {
                ViewBag.Estados = new SelectList(estados, "Sigla", "Nome");
    
                if (cpf != null)
                {
                     //Pessoa pessoas = new Pessoa();
    
                     var pessoas = db.Pessoas.FirstOrDefault(p => p.CPF.Replace(".","").Replace("-","") == cpf.Replace(".","").Replace("-",""));
    
                    return View(pessoas);
    
                }
                return View(new Pessoa());
            }


    Se ajudou, marque como resposta! Obrigado.

    segunda-feira, 8 de abril de 2019 22:41
  • Leonardo  

    Nada meu amigo.. 

    Continua Null

             

     if (cpf != null)
                {

    var pessoas = db.Pessoas.FirstOrDefault(p => p.CPF.Replace(".", "").Replace("-", "") == cpf.Replace(".", "").Replace("-", ""));

    return View(pessoas);

    é virou um desafio..    4  formas e  nenhuma   funciona... 

    Vou mostrar a chamada  ou seja por onde faço a requisição da Action

                    

     $(document).ready(function () {
                var table = $('#dataTable').DataTable();

                $('#dataTable tbody').on('click', 'tr', function () {
                    var data = table.row(this).data();
                    var url = "/Pessoas/Cadastro/?cpf='" + data[0] +"'"
                    window.location.href = url;

                });
            });

    Quem sabe o erro não esteja na requisição.  

    Obrigado

    Obrigado.

    segunda-feira, 8 de abril de 2019 23:54
  • Olá, manda print com conteúdo da variável cpf...

    Se ajudou, marque como resposta! Obrigado.

    terça-feira, 9 de abril de 2019 00:29
  • Bom dia!!

     Leonardo,   se entendi , segue sua solicitação. 

      conteúdo  da variável cpf    '032.335.098-00'

     

     select * from Pessoas  where CPF = '032.335.098-00'    

    032.335.098-00 Caroline Tadeu 1961-05-01 00:00:00.000 0 1 RN São Paulo rua Celso 262 NULL 1.00 

    Obrigado..  

    terça-feira, 9 de abril de 2019 14:17
  • Olá, amigo para verificar... usa o código e mostra o resultado...

    var pessoas = db.Pessoas.FirstOrDefault();


    Se ajudou, marque como resposta! Obrigado.


    terça-feira, 9 de abril de 2019 14:56
  • Segue Leonardo..
    terça-feira, 9 de abril de 2019 15:03
  • Olá, vamos lá.. tenta o código...

    var pessoas = db.Pessoas.AsEnumerable().FirstOrDefault(p => Convert.ToInt64(p.CPF.Replace(".","").Replace("-","")) == Convert.ToInt64(cpf.Replace(".","").Replace("-","")));


    Se ajudou, marque como resposta! Obrigado.

    terça-feira, 9 de abril de 2019 15:52
  • Leonardo,

      Achei o  erro. 

     $('#dataTable tbody').on('click', 'tr', function () {
                    var data = table.row(this).data();
                    var url = "/Pessoas/Cadastro/?cpf=" + data[0]                valor passado   '999-999-999'
                    window.location.href = url;

       var url = "/Pessoas/Cadastro/?cpf='" + data[0] +"'"    <----   errado     valor passado  999-999-99

      Asp  simples contava como parte do cpf ..

        Valeu pelo  apoio..

     Obrigado..

    terça-feira, 9 de abril de 2019 19:24
  •      Pequeno detalhes..   

        Penso que me  baseei   pela sintaxe do sql     onde  a asp simples conta...

      mas , enfim.   conseguimos.. 

      abraços

      obrigado.

     

    terça-feira, 9 de abril de 2019 19:32
  • Olá, que bom! mas estranho, pois no print que enviou com conteúdo da variável cpf estava certo e mascarou a analise...


    Se ajudou, marque como resposta! Obrigado.

    terça-feira, 9 de abril de 2019 22:35
  • Bom dia Leonardo,

      Coloquei  a informação invertida .

    Achei o  erro. 

     $('#dataTable tbody').on('click', 'tr', function () {
                    var data = table.row(this).data();
                    var url = "/Pessoas/Cadastro/?cpf=" + data[0]   <---  correto valor passado   999-999-999-99
                    window.location.href = url;

       var url = "/Pessoas/Cadastro/?cpf='" + data[0] +"'" <---- errado valor passado  '999-999-999-99'

      Asp  simples contava como parte do cpf   e por isso  retornava como null

    Ótimo dia,


    quarta-feira, 10 de abril de 2019 11:37