Tengo un proyecto que en ASP.NET el cual estoy editando con Visual Studio. Al momento de compilarlo me sale todo en orden y abre la pantalla de login pero al momento de ingresar el usuario/contraseña y seleccionar el botón de iniciar sesión me abre el visual estudio con el siguiente mensaje:
Si alguien tiene una idea que me puede estar pasando le agradezco me oriente. A continuacion adjunto el codigo, Gracias.
public class Conexion
{
MySqlConnection conn;
MySqlCommand comando = new MySqlCommand();
/// <summary>
/// Crea una instancia del acceso a la Base de Datos
/// </summary>
public Conexion()
{
// Llamado al método conectar
conectar();
}
public void conectar()
{
try
{
//NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;Port=5432;User Id=postgres;Password=123;Database=schoolonline;Pooling=false");
string nombrecadena = "default";
if (HttpContext.Current.Request.ApplicationPath.Remove(0, 1) != "")
nombrecadena = HttpContext.Current.Request.ApplicationPath.Remove(0, 1);
if (conn == null)
{
conn = new MySqlConnection(ConfigurationManager.ConnectionStrings[nombrecadena].ToString());
}
else
{
if (conn.State != ConnectionState.Closed) conn.Close();
conn = null;
conn = new MySqlConnection(ConfigurationManager.ConnectionStrings[nombrecadena].ToString());
}
}
catch (MySqlException e)
{
// Lanza la excepción en caso de no poder conectarse a la BD
throw new ApplicationException("Error conectando a base de datos, consulte con su administrador de red", e);
}
}
public bool probarconexion()
{
try
{
conectar();
conn.Open();
return true;
}
catch (MySqlException e)
{
return false;
}
}
public void desconectar()
{
conn.Close();
}
/// <summary>
/// Devuelve un DATATABLE con los registros que resultan
/// de la ejecución de la consulta SQL pasada como parámetro
/// </summary>
/// <returns>DataTable con los registros resultado de la ejecución del comando</returns>
public DataTable traerdata()
{
try
{
// Llama al método conectar para establecer a conexión
conectar();
// el método Open abre la conexión
conn.Open();
// instancia un datatable
DataTable dtabtrae = new DataTable();
// se crea el adaptador de datos
MySqlDataAdapter adaptrae = new MySqlDataAdapter(comando.CommandText, conn);
// el adaptador llena el datatable
adaptrae.Fill(dtabtrae);
// se cierra la conexión
// se devuelve el datatable
return dtabtrae;
}
catch (MySqlException e)
{
if (e.Number == 1042)
{
// Error de conexión
throw new ApplicationException("Error conectando a base de datos, consulte con su administrador de red", e);
}
return null;
}
finally
{
conn.Close();
conn.Dispose();
}
}
public DataSet traerset()
{
try
{
// Llama al método conectar para establecer a conexión
conectar();
// el método Open abre la conexión
conn.Open();
// instancia un datatable
DataSet ds = new DataSet();
// se crea el adaptador de datos
MySqlDataAdapter adaptrae = new MySqlDataAdapter(comando.CommandText, conn);
// el adaptador llena el datatable
adaptrae.Fill(ds);
// se cierra la conexión
conn.Close();
// se devuelve el datatable
return ds;
}
catch (MySqlException e)
{
if (e.Number == 1042)
{
// Error de conexión
throw new ApplicationException("Error conectando a base de datos, consulte con su administrador de red", e);
}
return null;
}
}
/// <summary>
/// Devuelve un DATAROW con el registro que resulte
/// de la ejecución de la consulta SQL pasada como parámetro
/// </summary>
/// <param name="cad">Consulta SQL a ejecutar</param>
/// <returns></returns>
public DataRow traerfila()
{
try
{
conectar();
conn.Open();
DataTable dtabtrae = new DataTable();
MySqlDataAdapter adaptrae = new MySqlDataAdapter(comando.CommandText, conn);
adaptrae.Fill(dtabtrae);
// Se verifica la cantidad de registros del datatable
if (dtabtrae.Rows.Count > 0)
{
// Se asigna al datarow el primer registro del datatable
// y se devuelve
DataRow dfiltrae = dtabtrae.Rows[0];
return dfiltrae;
}
else
{
// En caso de que la consulta no devuelva resultados se
// retorna null
return null;
}
}
catch (MySqlException e)
{
throw (e);
//if (e.Number == 1042)
//{
//throw new ApplicationException("Error conectando a base de datos, consulte con su administrador de red", e);
//}
return null;
}
finally
{
conn.Close();
conn.Dispose();
}
}
/// <summary>
/// Ejecuta una consulta de acción (INSERT, UPDATE, DELETE)
/// sobre la BD
/// </summary>
/// <param name="cad">Consulta SQL a ejecutar</param>
/// <returns></returns>
public Boolean guardadata()
{
try
{
conectar();
conn.Open();
MySqlCommand cmdguarda = new MySqlCommand(comando.CommandText, conn);
cmdguarda.ExecuteNonQuery();
cmdguarda.Connection.Close();
return true;
}
catch (MySqlException e)
{
if (e.Number == 1042)
{
throw new ApplicationException("Error conectando a base de datos, consulte con su administrador de red", e);
}
return false;
}
finally
{
conn.Close();
conn.Dispose();
}
}
//Ejecuta una consulta de acción (INSERT, UPDATE, DELETE)
//sobre la BD, y en caso de AUTO INC me trae el codigo
public long guardadataid()
{
try
{
long idgen;
conectar();
conn.Open();
MySqlCommand cmdguarda = new MySqlCommand(comando.CommandText, conn);
cmdguarda.ExecuteNonQuery();
idgen = cmdguarda.LastInsertedId;
conn.Close();
cmdguarda.Connection.Close();
return idgen;
}
catch (MySqlException e)
{
if (e.Number == 1042)
{
throw new ApplicationException("Error conectando a base de datos, consulte con su administrador de red", e);
}
return -1;
}
finally
{
conn.Close();
conn.Dispose();
}
}
/// <summary>
/// Crea un comando en base a una sentencia SQL.
/// Ejemplo:
/// <code>SELECT * FROM Tabla WHERE campo1=@campo1, campo2=@campo2</code>
/// Guarda el comando para el seteo de parámetros y la posterior ejecución.
/// </summary>
/// <param name="sentenciaSQL">La sentencia SQL con el formato: SENTENCIA [param = @param,]</param>
public void CrearComando(string sentenciaSQL)
{
this.comando.CommandType = CommandType.Text;
this.comando.CommandText = sentenciaSQL;
}
/// <summary>
/// Setea un parámetro como nulo del comando creado.
/// </summary>
/// <param name="nombre">El nombre del parámetro cuyo valor será nulo.</param>
public void AsignarParametroNulo(string nombre)
{
AsignarParametro(nombre, "", "NULL");
}
/// <summary>
/// Asigna un parámetro de tipo cadena al comando creado.
/// </summary>
/// <param name="nombre">El nombre del parámetro.</param>
/// <param name="valor">El valor del parámetro.</param>
public void AsignarParametroCadena(string nombre, string valor)
{
AsignarParametro(nombre, "'", valor);
}
/// <summary>
/// Asigna un parámetro de tipo entero al comando creado.
/// </summary>
/// <param name="nombre">El nombre del parámetro.</param>
/// <param name="valor">El valor del parámetro.</param>
public void AsignarParametroEntero(string nombre, int valor)
{
AsignarParametro(nombre, "", valor.ToString());
}
/// <summary>
/// Asigna un parámetro de tipo doble al comando creado.
/// </summary>
/// <param name="nombre">El nombre del parámetro.</param>
/// <param name="valor">El valor del parámetro.</param>
public void AsignarParametroDouble(string nombre, double valor)
{
AsignarParametro(nombre, "", valor.ToString());
}
/// <summary>
/// Asigna un parámetro al comando creado.
/// </summary>
/// <param name="nombre">El nombre del parámetro.</param>
/// <param name="separador">El separador que será agregado al valor del parámetro.</param>
/// <param name="valor">El valor del parámetro.</param>
private void AsignarParametro(string nombre, string separador, string valor)
{
int indice = this.comando.CommandText.IndexOf(nombre);
string prefijo = this.comando.CommandText.Substring(0, indice);
string sufijo = this.comando.CommandText.Substring(indice + nombre.Length);
this.comando.CommandText = prefijo + separador + valor + separador + sufijo;
}
/// <summary>
/// Asigna un parámetro de tipo fecha al comando creado.
/// </summary>
/// <param name="nombre">El nombre del parámetro.</param>
/// <param name="valor">El valor del parámetro.</param>
public void AsignarParametroFecha(string nombre, DateTime valor)
{
AsignarParametro(nombre, "'", valor.ToString());
}
}