Boa Tarde.
Eu tenho um sistema em que na tela principal, exibe um avatar e o nome do usuário. Este programa é único por usuário, ou seja a minha tabela de usuarios nunca terá mais de um registro no banco de dados. Então caso o usuário não tenha cadastrado nenhuma imagem
ou nome, eu quero exibir dados já pré-definidos. Ok, isto eu fiz. Mas o problema está em quando já existem dados no banco de dados. Vejam meu código.
Método na Camada de Apresentação ao usuário (UI):
public void DadosUsuario()
{
NegUsuario usuario = new NegUsuario();
List<Usuario> usuarios = new List<Usuario>();
usuarios = usuario.Consultausuario();
if (usuarios.Count > 0)
{
pbUsuario.Image = Image.FromFile(usuarios[4].ToString());
lbNomeusuario.Text = usuarios[1].ToString();
}
else
{
pbUsuario.Image = Properties.Resources.user;
lbNomeusuario.Text = "Anônimo";
}
}
E o método da camada de Negócios:
public List<Usuario> Consultausuario()
{
ConsultaUsuario usuario = new ConsultaUsuario();
DataTable dtUsuario = new DataTable();
dtUsuario = usuario.Consultausuario();
List<Usuario> usuarios = new List<Usuario>();
foreach (DataRow row in dtUsuario.Rows)
{
Usuario objUsuario = new Usuario();
objUsuario.Id = (int)row["id"];
objUsuario.Nome = (string)row["nome"];
objUsuario.Login = (string)row["login"];
objUsuario.Senha = (string)row["senha"];
objUsuario.Imagem = (string)row["imagem"];
usuarios.Add(objUsuario);
}
return usuarios;
}
Percebam que na camada de apresentação, eu estou passando a lista que vem da camada de negócios para uma lista que eu crio na camada de apresentação. Pensei que isso seria possível, mas me enganei, ou talvez exista mas não fiz da maneira correta. Sempre
que eu testo o programa e tem algum usuário cadastrado no banco. Acontece este erro:
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
Na linha pbUsuario.Image = Image.FromFile(usuarios[4].ToString());
fazendo alguns testes eu vi que essa minha lista usuarios não é carregada. Alguém teria alguma solução?
Obrigadão.