Erro na chamada de método com 3 assinaturas(Overload)
//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?
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
Curtidas 0
Respostas
Joel Rodrigues
05/06/2012
Depure o código e verifique o valor de usuario.Filiais[0], veja se realmente essa posição zero está preenchida.
GOSTEI 0
Pjava
05/06/2012
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?
GOSTEI 0
Joel Rodrigues
05/06/2012
Rapaz, aí só se você tratar a data como string, usando o ToShortDateString ou o ToString(formato).
GOSTEI 0
Pjava
05/06/2012
Eu sei, mas o parâmetro é do tipo DateTime. E preciso passar sem a parte hora.
GOSTEI 0
Pjava
05/06/2012
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.
GOSTEI 0
Joel Rodrigues
05/06/2012
Ah, beleza. Mais uma vez eu não tinha entendido tua questão. Mas o importante é que você resolveu.
Boa sorte em seus projetos.
Boa sorte em seus projetos.
GOSTEI 0