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:
y luego para que esta función se ejecute en el botón puse esto// 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; }
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