Foros del Web » Programación para mayores de 30 ;) » .NET »

Error

Estas en el tema de Error en el foro de .NET en Foros del Web. Estoy haciendo un Login de usuarios. El método para ingresar: Código: private void btnIngresar_Click(object sender, System.EventArgs e) { Database conectar = new Database(); int contador ...
  #1 (permalink)  
Antiguo 24/09/2003, 12:30
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años, 7 meses
Puntos: 2
Error

Estoy haciendo un Login de usuarios. El método para ingresar:

Código:
		private void btnIngresar_Click(object sender, System.EventArgs e)
		{
			Database conectar = new Database();
			int contador = 0;
			while (conectar.getDataReader().Read())
				contador++;
			if(contador==0)
				Response.Redirect("index.aspx");
			else
				Response.Redirect("principal.aspx");
		}

El error:

Cita:
Server Error in '/CFE' Application.
--------------------------------------------------------------------------------

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:


Line 58: Database conectar = new Database();
Line 59: int contador = 0;
Line 60: while (conectar.getDataReader().Read())
Line 61: contador++;
Line 62: if(contador==0)


La clase Database

Código:
using System;
using System.Data;
using MySQLDriverCS;

namespace CFE
{
	/// <summary>
	/// Summary description for Database.
	/// </summary>
	public class Database
	{
		string servidor;
		string bd;
		string usuario;
		string password;
		MySQLConnection conexion;
		MySQLCommand comando;
		string sql;
		MySQLDataReader dataReader;

		public Database()
		{
			this.servidor = "localhost";
			this.bd = "CFE";
			this.usuario = "root";
			this.password = "";
			creaConexion();
		}

		private void creaConexion()
		{
			MySQLConnectionString cadena = new MySQLConnectionString(this.servidor,this.bd, this.usuario,this.password);
			this.conexion = new MySQLConnection(cadena.AsString);
			this.conexion.Open();
		}

		private void creaDataReader()
		{
			dataReader = (MySQLDataReader)this.getComando().ExecuteReader(CommandBehavior.CloseConnection);
		}

		public MySQLDataReader getDataReader()
		{
			return this.dataReader;
		}

		public MySQLCommand getComando()
		{
			return comando;
		}

		public void creaComando()
		{
			this.comando.CommandText = this.getSql();
			this.comando.Connection = this.getConexion();
		}
			
		public MySQLConnection getConexion()
		{
			return conexion;
		}

		public void setSql(string sql)
		{
			this.sql = sql;
		}

		public string getSql()
		{
			return this.sql;
		}
	}
}
Alguien sabe que esta pasando?

Última edición por DotNetDeveloper; 24/09/2003 a las 12:35
  #2 (permalink)  
Antiguo 24/09/2003, 14:54
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Hola.. me llama la atencion ésta linea:

Cita:
public MySQLDataReader getDataReader()
{
return this.dataReader;
}
ya que estas regresando el reader pero no tiene info, y por está marcando el error de :

Cita:
Object reference not set to an instance of an object.
cuando la estás pidiendo en:

Cita:
conectar.getDataReader(). Read())
o me podrías decir que es lo que estas haciendo con :

return this.dataReader;

Saludos y suerte
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:44.