Foros del Web » Programando para Internet » ASPX (.net) »

Validar datos de que ingrese un usuario sean iguales al de la Base de Datos

Estas en el tema de Validar datos de que ingrese un usuario sean iguales al de la Base de Datos en el foro de ASPX (.net) en Foros del Web. Hola, lo que sucede es que estoy realizando un formulario de registro de PQR (Peticiones, Quejas y Reclamos) y ps bueno la informacion que ingresa ...
  #1 (permalink)  
Antiguo 31/10/2012, 10:38
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Validar datos de que ingrese un usuario sean iguales al de la Base de Datos

Hola, lo que sucede es que estoy realizando un formulario de registro de PQR (Peticiones, Quejas y Reclamos) y ps bueno la informacion que ingresa el usuario es guardada en una base de datos que llamo "PQR", la cual la he creado con la opción de Asp.Net de crear nueva BD. Y pues bueno esta Base tiene a su vez 4 tablas, en la cual se guarda la informacion del usuario dependiendo si en el Formulario escogio que queria radicar una Petición, reclamo, asi sucesivamente.
Por ello cada tabla recibe los datos dependiendo el tipo de solicitud que desea el usuario, no se si sea un problema pero no tengo las tablas relacionadas entre si, y ps cada columna tiene el mismo nombre para cada tabla.

Y bueno ya logro que me guarde la informacion en la tabla que debe ser, es decir dependiendo el tipo de solicitus.

Pero ahora lo que necesito es que tengo una página donde le doy la opcion al usuario de verificar si ya se le soluciono su problema, y para ello debe ingresar su numero de identificación y un codigo que se le dio anteriormente, y si la información es correcta podrá visualizar la informacion. Pero como dije ahi está el problema no logro que cuando el usuario digite esa informacion el programa recorra las 4 tablas buscando a que registro coincide y ahi si le muestre la info.

Para hacer esto googleando encontre una opción que propone la página del guille para validar en el caso cuando alguien se logea y ps indica sus datos, y claro está lo acomodé a mi situación, y para ello hice lo siguiente:

Código:
// Función para comprobar si el acceso es correcto
        private bool comprobarUsuario (string identificacion, string radicado)
        {
            // Conectar a la base de datos
            SqlConnection ccadena = null;
            //
            try
            {
                // Conectar a la base de datos de SQL Server
                // (la cadena debe estar inicializada previamente)
                ccadena = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\Documents\\Visual Studio 2010\\Projects\\ProyectoFinal\\ProyectoFinal\\App_Data\\PQR.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
                ccadena.Open();

                // Definir la cadena que vamos a usar para comprobar
                // si el ID y el código son correctos.
                // Utilizo parámetros para evitar inyección de código.
                System.Text.StringBuilder sel = new System.Text.StringBuilder();

                // Usando COUNT(*) nos devuelve el total que coincide
                // con lo indicado en el WHERE,
                // por tanto, si la clave y el usuario son correctos,
                // devolverá 1, sino, devolverá 0
                sel.Append("SELECT COUNT(*) FROM Peticiones, Quejas");
                sel.Append("WHERE Identificacion = @Identificacion AND Radicado = @Radicado");
                // Definir el comando que vamos a ejecutar
                SqlCommand cmd = new SqlCommand(sel.ToString(), ccadena);
                // Creamos los parámetros
                cmd.Parameters.Add("@Identificacion", SqlDbType.NVarChar, 30);
                cmd.Parameters.Add("@Radicado", SqlDbType.NVarChar, 10);
                //
                // Asignamos los valores recibidos como parámetro
                cmd.Parameters["@Identificacion"].Value = identificacion;
                cmd.Parameters["@Radicado"].Value = radicado;
                //
                // Ejecutamos la consulta
                // ExecuteScalar devuelve la primera columna de la primera fila
                // por tanto, devolverá el número de coincidencias halladas,
                // que si es 1, quiere decir que el id y el codigo son correctos.
                int t = Convert.ToInt32(cmd.ExecuteScalar());
                // Cerramos la conexión
                ccadena.Close();
                //
                // Si el valor devuelto es cero
                // es que no es correcto.
                if (t == 0)
                {
                    return false;
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show("ERROR al conectar a la base de datos: \n" +
            ex.Message, "Comprobar usuario",
            MessageBoxButtons.OK,
            MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                return false;
            }
            finally
            {
                if (ccadena != null)
                {
                    ccadena.Dispose();
                }
            }
            //
            // Si llega aquí es que todo ha ido bien
            return true;
        }
y luego para que esta función se ejecute en el botón puse esto

Código:
protected void btnEnvio_Click(object sender, EventArgs e)
        {
            if (comprobarUsuario(this.txtID.Text, this.txtCode.Text))
            {
               MessageBox.Show("informacion correcta");
            }
            
        }

Gracias y espero me puedan colaborar a enocontrar una posible solución

  #2 (permalink)  
Antiguo 31/10/2012, 12:57
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Validar datos de que ingrese un usuario sean iguales al de la Base de Dato

Pienso que debes tener la tablas relacionadas para que te pueda funcionar.

Pues digamos que tienes un combo con la tres opciones, el usuario elije una, entonces dependiendo de la opción que el elija manda ese valor al formulario, pienso que no creo que tenga que haber varias tablas para hacer esa forma, simplemente crea un solo formulario con un combo con las tres opciones y simplemente al formulario le mandas el código del usuario. Y cuando vayas a buscar que eligió el usuario simplemente busca ese formulario con su código y hay te aparecerá el tipo de formulario que el eligió ya sea queja o reclamo.
  #3 (permalink)  
Antiguo 31/10/2012, 13:18
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Validar datos de que ingrese un usuario sean iguales al de la Base de Dato

Disculpa es que soy algo nueva en esto y no comprendo muy bien cuando dices que " simplemente al formulario le mandas el código del usuario"

Lo que mas o menos te entiendo es que lo que me aconsejas es crear una sola tabla, y que en esa tabla tambien se guarde si ese usuario escogio petición o queja?

Ya que en el formulario esas opciones las tengo definidas con radiobutton.

Y bueno si es así entonces tan solo hago una consulta normal donde sea igual la identificación y el código?

Y bueno si te entendí bien jeje, quisiera porfa me explicaras como hago eso, es decir, que me valide que ese usuario digito correctamente su cedula y el código unico que se le fue dado

Gracias
  #4 (permalink)  
Antiguo 31/10/2012, 13:42
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Validar datos de que ingrese un usuario sean iguales al de la Base de Dato

Bueno seria casi igual a como cuando inicias sesión. primero realizas una consulta donde busques en la tabla del formulario si ese usuario tiene registros si el resultado te muestra "0" le mandas un error pero si te manda diferente de "0" que muestro cuales son los datos que el mando. O a esa consulta le puedes poner una condición que si ese formulario es igual a quejas o reclamos etc, pero eso seria si solamente quieres buscar un tipo de formulario en particular de un usuario.
  #5 (permalink)  
Antiguo 31/10/2012, 13:52
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Validar datos de que ingrese un usuario sean iguales al de la Base de Dato

me podrias explicar mejor con un ejemplo, es q en verdad no me queda claro como hacerlo

Ah no me respondiste lo otro, me aconsejas es que cree una sola tabla donde se almacenen todos esos datos?
  #6 (permalink)  
Antiguo 31/10/2012, 14:28
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Validar datos de que ingrese un usuario sean iguales al de la Base de Dato

Sencillo pondré solo unos campos nada mas. Digamos que solo tenemos los campos: código_formulario, identificación_usuario, código, tipo_formulario(Peticiones, Quejas y Reclamos), comentario.

Digamos que el ya registro unos datos y son:

1, 1143359834, MD0215, Peticiones, No me gusto nada.

En la consulta yo haría lo siguiente:

Código Javascript:
Ver original
  1. string identificacion_usuario = this.txtUsuario.Text;
  2. string codigo = this.txtcodigo.Text;            
  3.  
  4.            
  5. SqlConnection Conection = new SqlConnection(CadenaString);
  6.  
  7. Conection.Open();
  8.  
  9.  
  10. SqlCommand ComandoSql = new SqlCommand("SELECT * FROM table_formulario WHERE  identificación_usuario = @Username AND codigo = @codigo", Conection);
  11. ComandoSql.Parameters.AddWithValue("@Username", identificacion_usuario.Replace("'", "NOoo"));
  12. ComandoSql.Parameters.AddWithValue("@codigo", codigo.Replace("'", "NoOo"));
  13.            
  14. SqlDataReader Leer = ComandoSql.ExecuteReader();
  15.  
  16. if (Leer.Read())
  17. {                
  18.  this.textpersona.Text = Leer["identificación_usuario"];
  19.  this.textcodigo.Text = Leer["codigo"];                  
  20.  this.texttipo.Text = Leer["tipo_formulario"];
  21.  this.textcomentario.Text = Leer["comentario"];              
  22. }
  23. else
  24. {
  25.  ............................
  26. }
  27.  
  28. Leer.Close();
  29. Conection.Close();


Ó de otra manera seria de esta forma:

Código Javascript:
Ver original
  1. SqlConnection Conection = new SqlConnection(CadenaString);
  2. Conection.Open();
  3.            
  4. String CadenaSQL = "SELECT * FROM table_formulario WHERE  identificación_usuario = " + identificacion_usuario + " AND codigo = " + codigo + "";
  5.  
  6.  
  7. sqlDataAdapter Adapatador = new SqlDataAdapter(CadenaSQL, Conection);
  8.  
  9.  
  10. DataSet DS = new DataSet();
  11. Adapatador.Fill(DS); // Llenamos el DS, el objeto el cual nos sirve para poder manipular los datos.
  12.  
  13.            
  14. if (DS.Tables[0].Rows.Count == 0)
  15. {
  16.     DS.Dispose();
  17.         this.label.Text = "Usted no a realizado ninguna pregunta";
  18. }
  19. else
  20. {
  21.  this.textpersona.Text = DS.Tables[0].Rows[0]["identificación_usuario"].ToString();
  22.  this.textcodigo.Text = DS.Tables[0].Rows[0]["codigo"].ToString();
  23.  this.texttipo.Text = DS.Tables[0].Rows[0]["tipo_formulario"].ToString();
  24.  this.textcomentario.Text = DS.Tables[0].Rows[0]["comentario"].ToString();
  25.  
  26.  DS.Dispose();
  27.                
  28. }
  29. Conection.Close();


Espero y me hayas entendido.
  #7 (permalink)  
Antiguo 31/10/2012, 14:36
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Validar datos de que ingrese un usuario sean iguales al de la Base de Dato

Gracias por tu respuesta, bueno voy a intentar la primera forma que se me hace un poco mas familiar, espero funcione, dependiendo de como me vaya te aviso. O si no para que me des otra asesoria

  #8 (permalink)  
Antiguo 02/11/2012, 13:38
Avatar de jesmi89  
Fecha de Ingreso: agosto-2008
Ubicación: Bello - Antioquia
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Validar datos de que ingrese un usuario sean iguales al de la Base de Dato

Gracias, me funciono con cualquiera de las dos opciones pero preferi usar la primera. Y una pregunta para validar datos de login de usuario donde hay involucradas contraseñas el proceso podria ser igual cierto?

Gracias
  #9 (permalink)  
Antiguo 02/11/2012, 16:12
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Validar datos de que ingrese un usuario sean iguales al de la Base de Dato

Si es idéntico ya seria cambiar la consulta Query y algunas cosas mas. Que bien que te sirviera.

Etiquetas: c#, aspx, validar
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 21:16.