Erro na chamada de método com 3 assinaturas(Overload)

05/06/2012

0

//As tres assinaturas do método(Overload)
public IList<Meta> Metas()
{
return _dal.Metas();
}

public IList<Meta> Metas(string codGrafico, int codEmissor, DateTime datMeta)
{
return _dal.Metas(codGrafico, codEmissor, datMeta);
}

public IList<Meta> Metas(string codGrafico, int codEmissor, DateTime datMeta, string codChave)
{
return _dal.Metas(codGrafico, codEmissor, datMeta, codChave);
}


//Minha chamada
var usuario = NSContextoSeguranca.Instancia.UsuarioAtual;
string grafico = ;

DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 1);

IList<Meta> metas = (new NSContextoSeguranca()).Metas(EVOLUÇÃO DA FRAUDE BPS, usuario.Filiais[0].IdFilialCliente, dt);

Acontece que dá erro é esse:

O índice estava fora do intervalo. Ele deve ser não-negativo e menor que o tamanho da coleção.
Nome do parâmetro: index

Aponta para p primeiro argumento do método(EVOLUÇÃO DA FRAUDE BPS). Se ao invéis de eu usar a variável dt e passar
diretamente o parâmetro(new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 1)), aí esse erro é apon
tado nesse argumento. Como eu resolvo isso?
Pjava

Pjava

Responder

Posts

05/06/2012

Joel Rodrigues

Depure o código e verifique o valor de usuario.Filiais[0], veja se realmente essa posição zero está preenchida.
Responder

05/06/2012

Pjava

Realmente usuario.Filiais[0], estava vindo null. Agora, que já resolvi isso, preciso fazer com que a data não venha a parte hora(new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 1)). Essa linha aí precisa vir sem a parte hora. Como eu faço?
Responder

05/06/2012

Joel Rodrigues

Rapaz, aí só se você tratar a data como string, usando o ToShortDateString ou o ToString(formato).
Responder

05/06/2012

Pjava

Eu sei, mas o parâmetro é do tipo DateTime. E preciso passar sem a parte hora.
Responder

06/06/2012

Pjava

Resolvi isso colocando um TRUNC na query do LINQ. Eu estava apanhando com NHibernate e LINQ, por isso não estava rtesolvendo. Essa foi a solução, pois o campo no Oracle é Date, aí então fiz um TRUNC e resolveu.
Responder

06/06/2012

Joel Rodrigues

Ah, beleza. Mais uma vez eu não tinha entendido tua questão. Mas o importante é que você resolveu.
Boa sorte em seus projetos.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar