Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/11/2011, 05:01
Avatar de guichogdl
guichogdl
 
Fecha de Ingreso: abril-2010
Ubicación: gdl
Mensajes: 131
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Guardar Usuario de Login C#

hola! que tal, con todo respeto veo muchos errores, redundancias y muchas lineas innecesarias de código innecesarias.

En la primera condición que usas para validar que se ingresen los datos de "usuario" y "contraseña" usas || , deberías usar mejor un && ya que es necesitas que los 2 datos se ingresen para ejecutar tu consulta a la base de datos.
Código PHP:
if ((TextBox1.Text == "") || (TextBox2.Text == ""))
   {
                
MessageBox.Show("El campo USUARIO no puede ir vacio");
                
TextBox1.Focus();
    } 
mejor dejalo asi:
Código PHP:
if ((TextBox1.Text == "") && (TextBox2.Text == ""))
    {
                
MessageBox.Show("El campo USUARIO no puede ir vacio");
                
TextBox1.Focus();
    } 

No creo que sea necesario ejecutar 2 consultas donde buscas los mismos datos, con una seria suficiente.
Deja solo esta, ya que es la que obtendría mas datos al tener éxito la sentencia
Código PHP:
string sql "select USUARIO,CONTRASENA,COD_CATEGORIA from EMPLEADO where USUARIO = '" nombre "' AND CONTRASENA='"+contra+"'"

Creas demasiados objetos OracleDataReader, con uno solo es suficiente para recibir los datos de la consulta. deja solo uno
Código PHP:
OracleDataReader dr1 cmd.ExecuteReader();
dr1.Read(); 

Donde asignas los valores de "dr1" al no tener los otros objetos dr2 y dr3 podrias dejarlo asi:
Código PHP:
nombre1 dr1["USUARIO"].ToString();
contra1 dr1["CONTRASENA"].ToString();
categoria dr1["COD_CATEGORIA"].ToString(); 
podrias usar cualquiera de las 3 formas que pusiste, pero deja solo una, ya que cualquiera de las 3 te asignaría los datos.
Código PHP:
dr1["USUARIO"].ToString();
dr1.GetString(0).ToString();
dr1.GetOracleString(0).ToString(); //Esta no la eh usado 

Esta condicion es innecesaria, si la consulta devolvio datos, significa que el usuario es valido, borrala.
Código PHP:
if ((nombre == nombre1) || (contra == contra1))
                    {
                        
MessageBox.Show("USUARIO VALIDO!!!!!!");
 } 

el try debes ponerlo donde comienza la ejecución del botón, asi si salta una excepción, la puedas controlar en el catch, ponlo mejor aquí:
Código PHP:
 protected void Button1_Click(object senderEventArgs e)
        {
     try{ 
// <--- aquí es mejor

            
if ((TextBox1.Text == "") || (TextBox2.Text == ""))
            { 

Y ya respondiendo a tu pregunta, :D donde haces lo siguiente ya tienes el dato "nombre" que necesitas para tus reportes.

Código PHP:
nombre1 dr1["USUARIO"].ToString(); 
nombre1 podrias enviarlo a donde lo necesitas por un método como parámetro, por el constructor o como tu quieras.


Espero que todo esto te sirva y haberte ayudado. Saludos!!