Visual C++ .NET - guardar datos de los checkbox seleccionados

 
Vista:
sin imagen de perfil
Val: 13
Ha mantenido su posición en Visual C++ .NET (en relación al último mes)
Gráfica de Visual C++ .NET

guardar datos de los checkbox seleccionados

Publicado por Daniela (6 intervenciones) el 31/03/2019 18:22:06
hola compañeros, tengo un gridview con checkbox y lo que necesito hacer es guardar a una base de datos las filas que tienen el checkbox activo. les adjunto la imagen del gridview y el codigo que estoy usando, dicho código no me manda los datos a la base de datos. Gracias por la colaboracion

Captura

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
protected void btnguardar_Click(object sender, EventArgs e)
{
    string Asesor = ddlasesor.Text;
    string Fecha = grvformatoaprobador.Rows[0].Cells[1].Text;
    string Concepto = grvformatoaprobador.Rows[0].Cells[2].Text;
    string Valor = grvformatoaprobador.Rows[0].Cells[3].Text;
 
    System.Web.UI.WebControls.CheckBox chkitemrow = (System.Web.UI.WebControls.CheckBox)(grvformatoaprobador.FindControl("CheckBox2"));
 
    foreach(GridViewRow gvr in grvformatoaprobador.Rows)
    {
        System.Web.UI.WebControls.CheckBox chkitem = (System.Web.UI.WebControls.CheckBox)(gvr.FindControl("CheckBox2"));
 
        if (chkitem.Checked)
        {
            SqlConnection conexion = new SqlConnection(@"Data Source=LENOVO-PC\SQLEXPRESS;Initial Catalog=Plataforma_Novedades;Integrated Security=True");
            conexion.Open();
            string query = ("INSERT into AprobadosFGastos(Asesor,Fecha,Concepto,Valor)" + ("values (@Asesor,@Fecha,@Concepto,@Valor)"));
            SqlCommand cmd = new SqlCommand(query, conexion);
 
            foreach (GridViewRow row in grvformatoaprobador.Rows)
            {
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@Asesor", ddlasesor.Text);
                cmd.Parameters.AddWithValue("@Fecha", Convert.ToString(row.Cells[1].Text));
                cmd.Parameters.AddWithValue("@Concepto", Convert.ToString(row.Cells[2].Text));
                cmd.Parameters.AddWithValue("@Valor", Convert.ToString(row.Cells[3].Text));
 
                cmd.ExecuteNonQuery();
            }
        }
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

Guardar datos seleccionados de GridView con CheckBox en base de datos

Publicado por Alejandro (265 intervenciones) el 14/02/2024 23:05:21
Daniela, a continuación, te proporciono una versión mejorada del código para guardar los datos seleccionados del GridView con CheckBox en una 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
protected void btnguardar_Click(object sender, EventArgs e)
{
    string Asesor = ddlasesor.Text;
 
    foreach (GridViewRow row in grvformatoaprobador.Rows)
    {
        System.Web.UI.WebControls.CheckBox chkitem = (System.Web.UI.WebControls.CheckBox)(row.FindControl("CheckBox2"));
 
        if (chkitem.Checked)
        {
            string Fecha = row.Cells[1].Text;
            string Concepto = row.Cells[2].Text;
            string Valor = row.Cells[3].Text;
 
            // Usar using para garantizar la correcta liberación de recursos
            using (SqlConnection conexion = new SqlConnection(@"Data Source=LENOVO-PC\SQLEXPRESS;Initial Catalog=Plataforma_Novedades;Integrated Security=True"))
            {
                conexion.Open();
                string query = "INSERT INTO AprobadosFGastos (Asesor, Fecha, Concepto, Valor) VALUES (@Asesor, @Fecha, @Concepto, @Valor)";
                using (SqlCommand cmd = new SqlCommand(query, conexion))
                {
                    cmd.Parameters.AddWithValue("@Asesor", Asesor);
                    cmd.Parameters.AddWithValue("@Fecha", Fecha);
                    cmd.Parameters.AddWithValue("@Concepto", Concepto);
                    cmd.Parameters.AddWithValue("@Valor", Valor);
 
                    cmd.ExecuteNonQuery();
                }
            }
        }
    }
}

Cambios y mejoras realizados:

1. Ciclo de recorrido del GridView: El bucle ahora itera a través de todas las filas del GridView.

2. Obtención de datos por fila: Se obtienen los valores de `Fecha`, `Concepto` y `Valor` de cada fila.

3. Uso del bloque `using`: Se utiliza el bloque `using` para asegurar la liberación adecuada de los recursos de la conexión y el comando.

4. Parámetros de comando: Los parámetros del comando se establecen una vez fuera del bucle para evitar la redundancia.

5. Eliminación de bucle interno innecesario: Se eliminó el bucle interno que estaba dentro del bucle principal, ya que no era necesario.

Este código debería ayudarte a guardar correctamente los datos seleccionados del GridView con CheckBox en la base de datos. Asegúrate de ajustar las consultas y las estructuras de base de datos según tus necesidades específicas.
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