Usuário com melhor resposta
Atualizar tabela com mvc e entity

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);
.
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
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."}"
-
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