none
Linq c# conversão RRS feed

  • 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")),"

    quarta-feira, 12 de abril de 2017 12:30

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".

    quarta-feira, 12 de abril de 2017 12:54

Todas as Respostas

  • AlonsoLucas,

    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".

    quarta-feira, 12 de abril de 2017 12:38
  • então... não pode, porém não existe valor nulo na colula vl_total na tabela que estou buscando...
    quarta-feira, 12 de abril de 2017 12:40
  • 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".

    quarta-feira, 12 de abril de 2017 12:54
  • pois é cara... ja tentei colocar o <decimal?> mesmo assim permanece no mesmo erro ;/
    quarta-feira, 12 de abril de 2017 12:59