
26/02/2011, 15:45
|
| | Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 14 años, 5 meses Puntos: 1 | |
Ayuda con visual C# 2008: SQL Hola que tal, espero que todos esten muy bien. Me preguntaba si alguien podria ayudarme con mi siguiente problema:
Tengo un metodo que recibe como parametro un usuario, una contraseña y una conexion sql(Manejo MySQLServer 2005). Todo va bien hasta ahi. Dentro de mi base de datos tengo una tabla llamada terapeuta y otra administrador, cada una con su nombre de usuario y contraseña.
Lo que hago primero es consultar la tabla de los administradores, y si hay un administrador regresa un 2, que simboliza que es un administrador, si no, lanzo una excepcion que es atrapada y dentro del catch que atrapa la excepcion vuelvo a consultar pero ahora la tabla de teraeputas, si esta, regresa un 1 que significa que es un terapeuta, si no manda una excpecion que al ser atrapada regresa un 0, que simboliza que no hay datos. Aqui va el codigo:
public int ingresoSistema(string usuario, string contraseña, MySqlConnection conexion)
{
try
{
/*Si se retorna 0, es que no hay valores,
Si se retorna 1, es que es un terapeuta,
Si se retorna 2, es que es un administrador*/
MySqlDataReader leer;
MySqlCommand comando;
string consulta = "select * from administrador where Id_Admon='" + usuario + "' and Contrasena='" + contraseña + "';";
comando = new MySqlCommand(consulta, conexion);
leer = comando.ExecuteReader();
int contador = 0;
while (leer.Read() && contador == 0) {
contador++;
}
if (contador != 0)
return 2;
else {
throw new Exception();
return 0;
}
}
catch
{
try {
MySqlDataReader leer;
MySqlCommand comando;
string consulta = "select * from terapeuta where Nombre_T='" + usuario + "' and Contrasena='" + contraseña + "';";
comando = new MySqlCommand(consulta, conexion);
leer= comando.ExecuteReader();
int contador = 0;
while (leer.Read() && contador==0) {
contador++;
}
if (contador != 0)
{
return 2;
}
else {
throw new Exception();
return 0;
}
}
catch {
return 0;
}
}
}
Mi problema radica en que si no es administrador, pasa al bloque donde comprueba si es terapeuta, pero no hace bien la consulta, manda que no existe aunque los datos esten correctos, si invierto los papeles, es decir, que verifique si es primero terapeuta y despues administrador, ahora lo que no me detecta son los administradores. En pocas palabras, no me hace bien el manejo de la segunda consulta que le hago. ya verifique y los datos y la conexion estan bien, no se a que se deba.
muchas graxias por su atencion, espero me puedan ayudar con este problema. |