[ Foro de C# ]

Referencia a objeto no establecida como instancia de un objeto.

05-Jun-2015 17:37
elias manrique barrios
3 Respuestas

hola buenas dias tengo un pequeño problema el cual necesito una pequeña ayuda con este programa que he creado el cual me genera este error despues de validar que el texbox no este en blanco le anexo el codigo y en donde me genera el error


 }
        OleDbConnection cone = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Base de datos Aplicativo Energia.accdb;Persist Security Info=False ");
        OleDbCommand comand = new OleDbCommand();
        OleDbDataReader recuperar;
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "" & textBox2.Text != "")
            {
                cone.Open();
                comand = new OleDbCommand(" select * from Usuario where Usuarios = '" + textBox1.Text + "' and Clave = '" + textBox2.Text + "'", cone);
                recuperar = comand.ExecuteReader();
                
            }
           
            else
            {
                MessageBox.Show("No puede ir vacio debe Suministrar los Campo Solicitados");
            }
            
           if (recuperar.Read())     aqui me genera el error de ExepcionNullrefence referencia a objeto no establecida como instancia de un objeto
            {
                MessageBox.Show("BIENVENIDO A SICENE");
                Form2 ventana = new Form2();
                ventana.ShowDialog();
                textBox1.Text = "";
                textBox2.Text = "";
            }
            else
                MessageBox.Show("usuario o clave errada");
            textBox1.Text = "";
            textBox2.Text = "";
            cone.Close();
            this.Close();


ayudenme por favor y de antemano gracias


11-Jun-2015 10:12
Nacho Cabanes (+84)

Ese error indica que un objeto es "null", que no existe. En tu caso, si "recuperar" es null, quiere decir que la consulta no se ha podido ejecutar de forma correcta o que no se ha entrado al "if":


if (textBox1.Text != "" & textBox2.Text != "") 
{ 
    [...]
    recuperar = comand.ExecuteReader(); 
} 


 


11-Jun-2015 14:32
elias manrique barrios

pero si "recuperar" es el datareader como va a ser null?


11-Jun-2015 14:46
Nacho Cabanes (+84)

Insisto: Puede ser null si la conexión no ha sido correcta (caso menos habitual: en caso de problemas normalmente saltaría una excepción) o bien si no se ha entrado al "if", con lo que no se ha dado un valor a "recuperar":


(textBox1.Text != "" & textBox2.Text != "") 


Comprueba si hay texto en ambos TextBox.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)