none
Atualizar tabela com mvc e entity RRS feed

  • Pergunta

  •  Boa tarde galera,

    Estou fazendo um sistema de logo e quero atualizar o banco como acesso soma +1 sempre que a data do dia for diferente data do ultimo acesso muda com a data de acesso atual e se a data de acesso atual se for diferente do dia ele atualiza com o dia atual olha meu controller

                // esta action trata o post (login)
                if (ModelState.IsValid) // verificar se é valido
                {
                    using (CadastroEntities contexto = new CadastroEntities())
                    {
                        // consuta que retorna o login com os dados do usuário
                        var vLogin = (from login in contexto.Login
                                      from usuario in contexto.Usuario
                                      where login.Usuario == logon.Usuario
                                      select new
                                      {
                                          usuarioid = login.LoginID,
                                          senha = login.Senha,
                                          usuario = login.Usuario,
                                          nome = usuario.Nome,
                                          acessoatual = usuario.DataAcessoAtual
                                      }).FirstOrDefault();
    
                        // se encontrou o usuário ele grava a session com os dados do próprio
                        if (vLogin != null)
                        {
                            /*Código abaixo verifica se a senha digitada no site se é igual a senha 
                             * que está sendo retornada do banco. Caso não cai direto no else*/
                            if (vLogin.senha.TrimEnd() == logon.Senha)
                            {
                                FormsAuthentication.SetAuthCookie(vLogin.usuario, false);
                                Session["UsuarioId"] = vLogin.usuario.ToString();
                                Session["Login"] = vLogin.nome.ToString();
                                return RedirectToAction("Index");
                            }
                            else
                            {
                                /*Escreve na tela a mensagem de erro informando que a senha está errada*/
                                ModelState.AddModelError("", "Senha informado inválido!!!");
                            }
                        }
                        else
                        {
                            /*Escreve na tela a mensagem de erro informada que usuário não existe*/
                            ModelState.AddModelError("", "Usário informado inválido!!!");
                        }
                    }
                }
    
                return View(logon);

    .

    quinta-feira, 11 de maio de 2017 21:00

Respostas

  • Consegui as vezes e bom a gente quebrar a cabeça sozinho entre aspas rs pai google olha como ficou :

    if (vLogin.acessoatual != Convert.ToDateTime(DateTime.Now.Date))
    {
    Usuario usuario = contexto.Usuario.First(c => c.UsuarioId == vLogin.usuarioid);
    usuario.DataUltimoAcesso = usuario.DataAcessoAtual;
    usuario.DataAcessoAtual = Convert.ToDateTime(DateTime.Now.Date);
    usuario.Acesso += 1;
    contexto.SaveChanges();
    }

    • Marcado como Resposta CLAUDIO JOSE sábado, 13 de maio de 2017 01:04
    sábado, 13 de maio de 2017 01:04

Todas as Respostas

  • Galera bom dia já sei como fazer mais esta dando um erro quando vou fazer criar o objeto para atualizara tabela olha o código:

    if (vLogin.acessoatual!=
                Convert.ToDateTime(DateTime.Now.Date))
    {
       Usuario u = contexto.Usuario.Single(c => 
                             c.LoginId.Equals(vLogin.usuarioid));
       u.DataUltimoAcesso = u.DataAcessoAtual;
       u.DataAcessoAtual = Convert.ToDateTime(DateTime.Now.Date);
       u.Acesso += 1;
       contexto.SaveChanges();
    }
    O erro acontece nessa linha "Usuario u = contexto.Usuario.Single(c => c.LoginId.Equals(vLogin.usuarioid));" e é o seguinte erro "{"Unable to create a constant value of type 'System.Object'. Only primitive types or enumeration types are supported in this context."}"

    sexta-feira, 12 de maio de 2017 10:48
  • Consegui as vezes e bom a gente quebrar a cabeça sozinho entre aspas rs pai google olha como ficou :

    if (vLogin.acessoatual != Convert.ToDateTime(DateTime.Now.Date))
    {
    Usuario usuario = contexto.Usuario.First(c => c.UsuarioId == vLogin.usuarioid);
    usuario.DataUltimoAcesso = usuario.DataAcessoAtual;
    usuario.DataAcessoAtual = Convert.ToDateTime(DateTime.Now.Date);
    usuario.Acesso += 1;
    contexto.SaveChanges();
    }

    • Marcado como Resposta CLAUDIO JOSE sábado, 13 de maio de 2017 01:04
    sábado, 13 de maio de 2017 01:04