Usuário com melhor resposta
Convert em LINQ to SQL

Pergunta
-
Senhores,
Estou com uma dúvida aqui em Linq e acho que vocês podem me ajudar.
Tenho um campo no banco DateTime e preciso fazer uma busca e pegar somente a data, ou seja, os 10 primeiros caracteres. com TSQL eu uso a seguinte Query:
SELECT * FROM dbo.Entrega WHERE CONVERT(VARCHAR(10),dataEntregaFinal,103)= '01/07/2011'
Essa data, '01/07/2011' eu tenho que trocar por uma variável string, que vem de um campo, por exemplo, txtData.text
como eu poderia fazer isso em linq? já tentei diversar formas, mas não funciona.
Agradeço desde já a ajuda.
Att,
Diego Moura
|| "Se sua pergunta foi respondida, por favor, marque como resposta" || || "Porque Deus amou o mundo de tal maneira que deu seu Filho unigênito, para que todo aquele que nele crê não pereça, mas tenha a vida eterna".(João 3:16) ||- Movido Seilor Bonancio Junior segunda-feira, 4 de julho de 2011 16:52 (De:ASP.NET)
Respostas
-
Diego,tente utilizar Entity SQL para poder resolver este seu problema, veja um exemplo abaixo de como ficaria:
string dtValor = DateTime.Parse(TextBox1.Text).ToString("MM/dd/yyyy");<br/><br/> var consulta = db.Entregas<br/>.Where(string.Format("Year(it.dataEntregaFinal)==Year(Cast('{0}' as System.DateTime)) && "+<br/>"Month(it.dataEntregaFinal)==Month(Cast('{0}' as System.DateTime)) && "+<br/>"Day(it.dataEntregaFinal)==Day(Cast('{0}' as System.DateTime))", dtValor));
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 5 de julho de 2011 17:17
- Marcado como Resposta AndreAlvesLimaModerator quinta-feira, 14 de julho de 2011 12:39
Todas as Respostas
-
-
Olha meu código em LINQ
var consulta = from p in db.Entregas join v in db.Veiculos on p.idVeiculo equals v.id where v.placa == TextBox2.Text && p.dataEntregaFinal == TextBox1.Text select p;
e dá o seguinte erro: Error 1 Operator '==' cannot be applied to operands of type 'System.DateTime' and 'string' , entre o p.dataEntregaFinal e o TextBox1, sendo que meu campo do banco é dateTime , e não consigo fazer uma conversão para comprar somente os 10 primeiros caracteres da data.
|| "Se sua pergunta foi respondida, por favor, marque como resposta" || || "Porque Deus amou o mundo de tal maneira que deu seu Filho unigênito, para que todo aquele que nele crê não pereça, mas tenha a vida eterna".(João 3:16) || -
Diego,tente utilizar Entity SQL para poder resolver este seu problema, veja um exemplo abaixo de como ficaria:
string dtValor = DateTime.Parse(TextBox1.Text).ToString("MM/dd/yyyy");<br/><br/> var consulta = db.Entregas<br/>.Where(string.Format("Year(it.dataEntregaFinal)==Year(Cast('{0}' as System.DateTime)) && "+<br/>"Month(it.dataEntregaFinal)==Month(Cast('{0}' as System.DateTime)) && "+<br/>"Day(it.dataEntregaFinal)==Day(Cast('{0}' as System.DateTime))", dtValor));
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 5 de julho de 2011 17:17
- Marcado como Resposta AndreAlvesLimaModerator quinta-feira, 14 de julho de 2011 12:39
-
Amigo, deu certo ?
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)