Erro no SELECT dto

10/03/2015

0

public UsuarioDTO Find2(string Login, string Senha)
{
try
{ AbrirConexao();
Cmd = new SqlCommand("select * from Usuario where Login = @p1 and Senha = @p2", Con);
Cmd.Parameters.AddWithValue("@p1", Login);
Cmd.Parameters.AddWithValue("@p2", Senha);
Dr = Cmd.ExecuteReader();


UsuarioDTO dto = null;
if (Dr.Read())
{
Usuario usu = new Usuario();


if (usu != null)
{

dto = new UsuarioDTO();
dto.Nome = usu.Nome;
dto.Login = usu.Login;
dto.Perfil = usu.Perfil.IdPerfil;
}
else { }

}
return dto;
}
catch
{
throw;
}
finally { FecharConexao(); }
}

Toda vez que eu executo esse trecho quando chega na parte que o dto que precisa pegar os valores de usu da erro e nao consigo atribuir os valores.
Alguem sabe onde estou errando?
Davi Maciel

Davi Maciel

Responder

Posts

11/03/2015

Soeuseijothaz

Sempre que você postar um trecho de código use as TAG`S </> para formatá-lo, fica muito mais fácil a leitura e a ajuda.

       public UsuarioDTO Find2(string Login, string Senha)
        {
            try
            {
                AbrirConexao();
                Cmd = new SqlCommand("select * from Usuario where Login = @p1 and Senha = @p2", Con);
                Cmd.Parameters.AddWithValue("@p1", Login);
                Cmd.Parameters.AddWithValue("@p2", Senha);
                Dr = Cmd.ExecuteReader();


                UsuarioDTO dto = null;
                if (Dr.Read())
                {
                    Usuario usu = new Usuario();


                    if (usu != null)
                    {

                        dto = new UsuarioDTO();
                        dto.Nome = usu.Nome;
                        dto.Login = usu.Login;
                        dto.Perfil = usu.Perfil.IdPerfil;
                    }
                    else { }

                }
                return dto;
            }
            catch
            {
                throw;
            }
            finally { FecharConexao(); }
        }


Qual erro retorna?

Tenta debugar, dê um F9 na linha Dr = Cmd.ExecuteReader(); marque um breakpoint e veja qual o conteúdo retornado.
Responder

16/03/2015

Davi Maciel


try
            {
                AbrirConexao();
                Cmd = new SqlCommand("SELECT * FROM Usuario WHERE Login = @p1 AND Senha = @p2", Con);
                Cmd.Parameters.AddWithValue("@p1", Login);
                Cmd.Parameters.AddWithValue("@p2", Senha);
                Dr = Cmd.ExecuteReader();


                UsuarioDTO dto = null;
                if (Dr.Read())
                {
                    Usuario usu = new Usuario();



                    if (usu != null)
                    {
                        

                        dto = new UsuarioDTO();
                        dto.Login = Convert.ToString(Dr["Login"]);
                        dto.Nome = Convert.ToString(Dr["Nome"]);
                        dto.Perfil = Convert.ToInt32(Dr["IdPerfil"]);
                    }
                    

                }
                return dto;
            }


Consegui resolver da seguinte maneira adicionando o conteúdo do DataReader na minha dto(Data Transfer Object ).
Ai funcionou... valeu a atenção.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar