none
Como fazer um select com linq para valores DataTime? RRS feed

  • Pergunta

  • Bom dia, 

    Como posso fazer a consulta com Linq para poder obter valores DataTime e usa-los para um insert?

    from p in ctx.carrinho where p.usuario == User select p.dataCarrinho

    Tentei dessa forma, só que não esta retornando a data do banco

    Também utilizando essa data desse jeito.... diz que a conversão esta errada

    Data = Convert.ToDateTime(data)

    Quem puder ajudar agradeço

    terça-feira, 6 de novembro de 2012 13:51

Respostas

Todas as Respostas

  • Marcos,

    Você poderia postar o seu código completo? O que pode estar acontecendo é que sua consulta retorna um IEnumerable, ou seja, uma colecao... No seu caso, você sabe que sempre vai retornar um ou nenhum registro, certo? Se sim, você poderia utilizar o método FirstOrDefault() para pegar a primeira data retornada, e entao você pode utilizá-la no seu insert...

    http://www.dotnetperls.com/firstordefault 


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    terça-feira, 6 de novembro de 2012 18:56
    Moderador
  • Olá Andre, 

     Bom, estou fazendo o seguinte, estou tentando verificar a data em uma tabela através de um if, então consulto a tabela se a data me volta null, eu incluo-a, se não, eu pego a data que esta na tabela e insiro-a novamente...

    estava tentando fazer a consulta desta forma...

     using (var ctx = new Web1Entities())
                {
                    var User = Request.ServerVariables["AUTH_USER"].ToString();
                    var dateCarrinho = from p in ctx.carrinho where p.usuario == User select p.dataCarrinho;
    
                    if (dateCarrinho == null)
                    {
                        var c = new carrinho
                         {
                             dataCarrinho = DateTime.Now.AddDays(2),
                             idProduto = Convert.ToInt32(txtIdProduto.Text),
                             nomeProduto = txtProduto.Text,
                             valor = Convert.ToDecimal(txtTotal.Text),
                             quantidade = Convert.ToInt32(txtQuantidade.Text),
                             usuario = Request.ServerVariables["AUTH_USER"].ToString(),
                         };
                        ctx.AddTocarrinho(c);
                        ctx.SaveChanges();
    
                    }
                    else
                    {
      var c = new carrinho
                         {
                             dataCarrinho = // aqui vai a data que esta na tabela,
                             idProduto = Convert.ToInt32(txtIdProduto.Text),
                             nomeProduto = txtProduto.Text,
                             valor = Convert.ToDecimal(txtTotal.Text),
                             quantidade = Convert.ToInt32(txtQuantidade.Text),
                             usuario = Request.ServerVariables["AUTH_USER"].ToString(),
                         };
                        ctx.AddTocarrinho(c);
                        ctx.SaveChanges();
    
                    }

    Obrigado pela força....

     

    quarta-feira, 7 de novembro de 2012 11:26
  • Olá,

    Tente assim:

    dataCarrinho = dateCarrinho.First();


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    quarta-feira, 7 de novembro de 2012 11:43
    Moderador
  • desculpe-me, mas para onde esse código?

    Preciso fazer o if... pois tenho que verificar se já existe uma data, e caso exista tenho que inserir a mesma...

    quarta-feira, 7 de novembro de 2012 11:49
  • Andre, 

    Consegui fazer, usei o FirstOrDefault()... ai deu certo..., 

    quarta-feira, 7 de novembro de 2012 12:30