none
CREAR FORMULARIO DINAMICO (textbox-es) EN BASE A CAMPOS DE UNA BD RRS feed

  • Pregunta

  • Buenas,

    Una tabla de la base de datos tiene dos columnas(nombre,valor). Quisiera crear un formulario dinámico que cree una cantidad determinada de TextBox-es en base a las filas que haya en esa tabla y posteriormente guardar los valores de cada textbox en la BD. Se os ocurre alguna idea? O por dónde podría empezar?

    Muchas gracias.

    miércoles, 29 de julio de 2015 11:50

Respuestas

  • hola

    podrias hacer un SELECT a esa tabla, cargar un datatable y asignarlo al DataSource de un control Repeater

    de esta forma si defines un template con un textbox se crearan tantos como registros hayas asignado

    Cómo: Agregar un control Repeater a una página de formularios Web Forms

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 29 de julio de 2015 12:09
  • Gracias por tu respuesta, lo he conseguido hacer de esta forma al final.

     protected void Page_Load(object sender, EventArgs e)
            {
                serviciosReporte.IService1 serv = new serviciosReporte.Service1Client();
    
    
                String userName;
                userName = User.Identity.Name.Substring(11);
                //userName = "amaia";
    
    
                //SQLiteConnection conexion= serv.AbrirBaseDatos();
                SQLiteConnection conexion = new SQLiteConnection("Data Source=personal.sqlite;Version=3;New=False;Compress=True;");
                conexion.Open();
                string conadmin = "select * from USUARIOS";
    
                //SQLiteDataReader datos =  serv.ConsultaSQL(conadmin, conet);
                SQLiteCommand cmd = new SQLiteCommand(conadmin, conexion);
                SQLiteDataReader datos = cmd.ExecuteReader();
    
    
    
                //comprobar si es el primer usuario en introducirse, si es asi, se convierte en administrador, si no, usuario a la espera.
                if (!datos.HasRows)
                { //se convierte en administrador y se le redirige a adminPage
    
    
                    var insert = new SQLiteCommand("INSERT INTO USUARIOS VALUES('00', @userName,'1');", conexion);
                    insert.Parameters.AddWithValue("@userName", userName);
                    insert.ExecuteNonQuery();
    
                    conexion.Close();
                    Response.Redirect("adminPage.aspx");
    
                }
                else if (datos.HasRows)
                {//comprobar si es administrador, usuario con rol o usuario sin rol
                    string conuser = "select * from USUARIOS natural join USUARIO_ROL";
                    SQLiteCommand cmdA = new SQLiteCommand(conuser, conexion);
                    SQLiteDataReader datosA = cmdA.ExecuteReader();
                    bool ee = false;
                    while (datosA.Read())
                    {
    
                        if (Convert.ToString(datosA[1]) == userName && Convert.ToString(datosA[2]) == "1")
                        { // es el administrador, redireccionar a adminPage
                            ee = true;
                            conexion.Close();
                            Response.Redirect("adminPage.aspx");
                        }
                        else if (Convert.ToString(datosA[1]) == userName && Convert.ToString(datosA[2]) == "0")
                        {//eres un usuario registrado. comprobar a que rol perteneces.
                            ee = true;
                            conexion.Close();
                            Response.Redirect("userPage.aspx");
                        }
    
    
    
                    }
    
                    if (ee == false)
                    {
                        //obetener el id del ultimo usuario
                        string conid = "select name from USUARIOS";
                        SQLiteCommand cmdB = new SQLiteCommand(conid, conexion);
                        SQLiteDataReader datosB = cmdB.ExecuteReader();
    
                        bool u = false;
                        int i = 0;
                        while (datosB.Read())
                        {
    
                            i++;
                            String aa= Convert.ToString(datosB[0]);
                            if (userName == Convert.ToString(datosB[0]))
                            {
                                u = true;
                            }
                        }
    
                        String id = i.ToString();
    
    
                        if (u == false)
                        {
                            var insert1 = new SQLiteCommand("INSERT INTO USUARIOS VALUES(@id, @userName, '0');", conexion);
                            insert1.Parameters.AddWithValue("@userName", userName);
                            insert1.Parameters.AddWithValue("@id", id);
                            insert1.ExecuteNonQuery();                        
                            Response.Redirect("noRegister.aspx");
                        }
                        else
                        {
    
                            Response.Redirect("noRegister.aspx");
                            
                        }
    
                        conexion.Close();
    
    
                    }
    
    
    
                }
                
    
           
            }

    Saludos.


    • Editado Gurruccini jueves, 30 de julio de 2015 8:06
    • Marcado como respuesta Gurruccini jueves, 30 de julio de 2015 8:06
    jueves, 30 de julio de 2015 7:02

Todas las respuestas

  • hola

    podrias hacer un SELECT a esa tabla, cargar un datatable y asignarlo al DataSource de un control Repeater

    de esta forma si defines un template con un textbox se crearan tantos como registros hayas asignado

    Cómo: Agregar un control Repeater a una página de formularios Web Forms

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 29 de julio de 2015 12:09
  • Gracias por tu respuesta, lo he conseguido hacer de esta forma al final.

     protected void Page_Load(object sender, EventArgs e)
            {
                serviciosReporte.IService1 serv = new serviciosReporte.Service1Client();
    
    
                String userName;
                userName = User.Identity.Name.Substring(11);
                //userName = "amaia";
    
    
                //SQLiteConnection conexion= serv.AbrirBaseDatos();
                SQLiteConnection conexion = new SQLiteConnection("Data Source=personal.sqlite;Version=3;New=False;Compress=True;");
                conexion.Open();
                string conadmin = "select * from USUARIOS";
    
                //SQLiteDataReader datos =  serv.ConsultaSQL(conadmin, conet);
                SQLiteCommand cmd = new SQLiteCommand(conadmin, conexion);
                SQLiteDataReader datos = cmd.ExecuteReader();
    
    
    
                //comprobar si es el primer usuario en introducirse, si es asi, se convierte en administrador, si no, usuario a la espera.
                if (!datos.HasRows)
                { //se convierte en administrador y se le redirige a adminPage
    
    
                    var insert = new SQLiteCommand("INSERT INTO USUARIOS VALUES('00', @userName,'1');", conexion);
                    insert.Parameters.AddWithValue("@userName", userName);
                    insert.ExecuteNonQuery();
    
                    conexion.Close();
                    Response.Redirect("adminPage.aspx");
    
                }
                else if (datos.HasRows)
                {//comprobar si es administrador, usuario con rol o usuario sin rol
                    string conuser = "select * from USUARIOS natural join USUARIO_ROL";
                    SQLiteCommand cmdA = new SQLiteCommand(conuser, conexion);
                    SQLiteDataReader datosA = cmdA.ExecuteReader();
                    bool ee = false;
                    while (datosA.Read())
                    {
    
                        if (Convert.ToString(datosA[1]) == userName && Convert.ToString(datosA[2]) == "1")
                        { // es el administrador, redireccionar a adminPage
                            ee = true;
                            conexion.Close();
                            Response.Redirect("adminPage.aspx");
                        }
                        else if (Convert.ToString(datosA[1]) == userName && Convert.ToString(datosA[2]) == "0")
                        {//eres un usuario registrado. comprobar a que rol perteneces.
                            ee = true;
                            conexion.Close();
                            Response.Redirect("userPage.aspx");
                        }
    
    
    
                    }
    
                    if (ee == false)
                    {
                        //obetener el id del ultimo usuario
                        string conid = "select name from USUARIOS";
                        SQLiteCommand cmdB = new SQLiteCommand(conid, conexion);
                        SQLiteDataReader datosB = cmdB.ExecuteReader();
    
                        bool u = false;
                        int i = 0;
                        while (datosB.Read())
                        {
    
                            i++;
                            String aa= Convert.ToString(datosB[0]);
                            if (userName == Convert.ToString(datosB[0]))
                            {
                                u = true;
                            }
                        }
    
                        String id = i.ToString();
    
    
                        if (u == false)
                        {
                            var insert1 = new SQLiteCommand("INSERT INTO USUARIOS VALUES(@id, @userName, '0');", conexion);
                            insert1.Parameters.AddWithValue("@userName", userName);
                            insert1.Parameters.AddWithValue("@id", id);
                            insert1.ExecuteNonQuery();                        
                            Response.Redirect("noRegister.aspx");
                        }
                        else
                        {
    
                            Response.Redirect("noRegister.aspx");
                            
                        }
    
                        conexion.Close();
    
    
                    }
    
    
    
                }
                
    
           
            }

    Saludos.


    • Editado Gurruccini jueves, 30 de julio de 2015 8:06
    • Marcado como respuesta Gurruccini jueves, 30 de julio de 2015 8:06
    jueves, 30 de julio de 2015 7:02