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 sender, EventArgs 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!!