Usuário com melhor resposta
Linq c# conversão

Pergunta
-
Bom dia Galera estou usando linq para fazer um sum(), porem está dando o seguinte erro "conversão especificada não valida"
só que antes disso eu ja executei um linq com um sum() e passou normal, não sei oque pode ser
var resultMentrada = (from t1 in dtAlmMovimentos.AsEnumerable()
join t2 in dtAlmMovimentoItem.AsEnumerable()
on t1.Field<int>("CD_MOVIMENTO") equals t2.Field<int>("CD_MOVIMENTO")
join t3 in dtProduto.AsEnumerable()
on t2.Field<int>("CD_PROD_SERV") equals t3.Field<int>("CD_PROD_SERV")
where t1.Field<int?>("ANO_EXERCICIO") == ANO && t1.Field<int?>("CD_ALMOXARIFADO") == CD_ALMOXARIFADO
&& t1.Field<string>("SB_TIPO_MOVIMENTO") == "E" && Convert.ToDateTime(t1.Field<string>("DT_MOVIMENTO")) >= data_ini
&& Convert.ToDateTime(t1.Field<string>("DT_MOVIMENTO")) <= data_fim
group new { t3, t2 } by t3.Field<string>("SG_PLANO_CONTA") into grupo
select new
{
soma = grupo.Sum(s => s.t2.Field<decimal>("VL_TOTAL")),
sg = grupo.Select(se => se.t3.Field<string>("SG_PLANO_CONTA")).ToString()
}).ToList();
foreach (var dr in resultMentrada)
{
dtTot_entrada.Rows.Add(dr.sg, dr.soma);
}o erro está na linha " soma = grupo.Sum(s => s.t2.Field<decimal>("VL_TOTAL")),"
Respostas
-
Não analisei o join que está fazendo, mas talvez ele possa estar gerando valor nulo, então você pode tentar usando decimal? ao invés de decimal:
soma = grupo.Sum(s => s.t2.Field<decimal?>("VL_TOTAL")),
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Marcado como Resposta Robson William SilvaModerator quarta-feira, 19 de abril de 2017 12:00
Todas as Respostas
-
VL_TOTAL pode ser nulo?
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
-
-
Não analisei o join que está fazendo, mas talvez ele possa estar gerando valor nulo, então você pode tentar usando decimal? ao invés de decimal:
soma = grupo.Sum(s => s.t2.Field<decimal?>("VL_TOTAL")),
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Marcado como Resposta Robson William SilvaModerator quarta-feira, 19 de abril de 2017 12:00
-