Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

David_pc

[Resolvido] Problema com DataReader

Recommended Posts

Fiz o seguinte código de login:

 

namespace PizzariaVirtual.Formulario.Sistema
{
   public partial class frmLogin : frmModeloCadastro
   {
       public frmLogin()
       {
           InitializeComponent();
       }

       private void btnConfirmar_Click(object sender, EventArgs e)
       {
           if (txtNome.Text == "" || txtTelefone.Text == "")
           {
               MessageBox.Show("Preencha os Campos Nome e Telefone");
           }
           else
           {
               BancodeDados bd = new BancodeDados();
               String query = "select cl_nome, cl_telefone from Cliente where cl_nome='"+txtNome.Text+"'"+"and cl_telefone ='"+txtTelefone.Text+"'";
               SqlCommand cmd = new SqlCommand(query, bd.Conecta());
               SqlDataReader dr;
               dr = cmd.ExecuteReader();
               while (dr.Read())
               {
                   MessageBox.Show(dr["cl_nome"].ToString()+" , "+dr["cl_telefone"].ToString());
               }
               if ((dr["cl_nome"].ToString() == txtNome.Text) && (dr["cl_telefone"].ToString() == txtTelefone.Text))
               {
                   frmMenu mn = new frmMenu();
                   Close();
                   mn.Show();
                   MessageBox.Show("Login Realizado com Sucesso");
               }
               else
               {
                   MessageBox.Show("Login Falhou, tente denovo");
                   txtNome.Text = "";
                   txtTelefone.Text = ""; 
                   txtNome.Focus();
               }
           }
       }
   }
}

 

if ((dr["cl_nome"].ToString() == txtNome.Text) && (dr["cl_telefone"].ToString() == txtTelefone.Text))

 

Quando chega nessa linha o visual studio exibe o seguinte erro: Invalid attempt to read when no data is present.

O mais estranho é que o while que fiz(pra testar o retorno) imprime o nome e telefone do cliente certinho mas na hora de fazer a comparação a coisa não funciona, e aí!? Vocês podem me ajudar?

 

Ninguém vai responder? Eu só quero saber com eu faço pra receber a suposta string que o SqlDataReader retorna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apressado em jovem? Acha que fica gente online o final de semana pra ficar respondendo?

 

O if que esta fora do while não conseguirá acessar os objetos do DataReader.

Quando sair do while significa que o DataReader não esta mais em estado de leitura.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Apressado em jovem? Acha que fica gente online o final de semana pra ficar respondendo?"

 

Sim, na verdade estou com muita pressa mesmo, mas você respondeu não foi? Em pleno domingo.

 

Mas obrigado pela dica fera, meu login ta funcionando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.