Visual C++ .NET - Cuestionario en aspx C# + Access

 
Vista:

Cuestionario en aspx C# + Access

Publicado por Bonita (1 intervención) el 07/10/2015 01:29:38
Hola, el objetivo es que la página aspx muestre cuestionarios con sus respuestas correspondientes. Para poder solucionarlos, y, tras ella, mostrar las soluciones de los mismos. Tanto el número de preguntas de cada cuestionario como el número de respuestas de cada una puede variar, y las respuestas pueden ser, además de textos, imágenes o videos. Es decir, cada pregunta, puede tener un número diferente de respuestas, y cada cuestionario, un número diferente de preguntas. Tendría que crear la página en función de todo esto.

En una tabla tengo las preguntas de cada cuestionario y las respuestas de cada pregunta en otra tabla. El problema es que no entiendo como mostrar las preguntas y respuestas de forma adecuada en la página aspx para poder mostrar los radiobutton convenientes para responderlas.

Es decir, debían crearse según el tipo de cuestionario y el número de preguntas y de respuestas, pero como no se eso a priori, no entiendo como hacer el .aspx. Por favor, me es muy importante, ¿qué herramienta puedo utilizar para esto?, gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Crear dinámicamente cuestionario desde base de datos (Access)

Publicado por Alejandro (265 intervenciones) el 13/02/2024 23:46:36
Bonita, para crear dinámicamente preguntas y respuestas en una página ASP.NET (aspx) basada en los datos de tu base de datos (Access), puedes utilizar controles ASP.NET dinámicos y código detrás (code-behind) en C# para generar la estructura HTML necesaria.

A continuación, te proporciono un enfoque general para lograr esto:

Paso 1: Diseño del formulario ASP.NET (.aspx)



En tu archivo .aspx, puedes tener un contenedor, como un `Panel` o un `PlaceHolder`, donde se generará dinámicamente el contenido de las preguntas y respuestas. Aquí hay un ejemplo simple:

1
2
3
<asp:Panel runat="server" ID="panelCuestionario">
    <!-- Las preguntas y respuestas se generarán aquí dinámicamente -->
</asp:Panel>

Paso 2: Código C# en el código detrás (.aspx.cs)



En tu archivo .aspx.cs, escribirás código C# para consultar la base de datos y generar dinámicamente los controles necesarios. Aquí hay un ejemplo básico utilizando `SqlConnection` y `SqlCommand` (asegúrate de ajustar las consultas y conexiones según tu base de datos):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class TuPagina : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // Lógica para cargar el cuestionario
            CargarCuestionarioDesdeBaseDeDatos();
        }
    }
 
    private void CargarCuestionarioDesdeBaseDeDatos()
    {
        // Aquí realizar la lógica para consultar la base de datos y obtener preguntas y respuestas
 
        // Ejemplo de consulta a la base de datos
        // Usar SqlCommand para obtener preguntas y respuestas de la base de datos
 
        // Muestra de cómo puedes agregar un RadioButtonList para cada pregunta
        foreach (var pregunta in ObtenerPreguntasDesdeBaseDeDatos())
        {
            // Crear un nuevo control RadioButtonList
            RadioButtonList radioButtonList = new RadioButtonList();
            radioButtonList.ID = "RadioButtonList_" + pregunta.IdPregunta;
 
            // Agregar opciones de respuesta al control
            foreach (var respuesta in ObtenerRespuestasDesdeBaseDeDatos(pregunta.IdPregunta))
            {
                radioButtonList.Items.Add(new ListItem(respuesta.TextoRespuesta, respuesta.IdRespuesta.ToString()));
            }
 
            // Agregar el control al panel
            panelCuestionario.Controls.Add(radioButtonList);
        }
    }
 
    // Lógica para obtener preguntas desde la base de datos
    private Pregunta[] ObtenerPreguntasDesdeBaseDeDatos()
    {
        // Implementa la lógica para obtener preguntas desde la base de datos
        // Puedes usar SqlDataReader o Entity Framework, por ejemplo
        // Devuelve un array de objetos Pregunta
        throw new NotImplementedException();
    }
 
    // Lógica para obtener respuestas desde la base de datos
    private Respuesta[] ObtenerRespuestasDesdeBaseDeDatos(int idPregunta)
    {
        // Implementa la lógica para obtener respuestas desde la base de datos
        // Puedes usar SqlDataReader o Entity Framework, por ejemplo
        // Devuelve un array de objetos Respuesta asociadas a una pregunta
        throw new NotImplementedException();
    }
}

Paso 3: Definir clases de datos



Crea clases para representar preguntas y respuestas:

1
2
3
4
5
6
7
8
9
10
11
public class Pregunta
{
    public int IdPregunta { get; set; }
    public string TextoPregunta { get; set; }
}
 
public class Respuesta
{
    public int IdRespuesta { get; set; }
    public string TextoRespuesta { get; set; }
}

Notas adicionales:



- Persistencia de respuestas: Deberás considerar cómo manejar y almacenar las respuestas del usuario, ya que los controles se generarán dinámicamente y su estado normalmente no se mantiene entre solicitudes.

- Estilos y diseño: Puedes aplicar estilos CSS a los controles generados dinámicamente para mejorar la presentación visual.

Este enfoque te permitirá generar preguntas y respuestas dinámicamente en función de la base de datos. Asegúrate de adaptarlo según la estructura exacta de tu base de datos y los requisitos específicos de tu aplicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar