es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pregunta acerca de Gridview y datos en Asp.net con C#

Estoy haciendo un módulo para guardar un arreglo en una base de datos SQL. Por ejemplo, quiero guardar (889,4,01/12/2021), (889,4,02/12/2021) y (889,4,03/12/2021).

Estoy usando un gridview donde obtengo el primer valor (889). Luego, obtengo la fecha con un cuadro de texto y ejecuto una consulta para devolver las fechas en filas y guardarlas en un gridview.

Estoy intentando elegir el segundo valor del gridview (fecha) con GridView2.Rows[0].Cells[1].Text, pero está fuera del rango de valores válidos.

Como es un arreglo, guardo todas las sentencias SQL en un cuadro de texto y luego las ejecuto. Este es mi código:

string[,] arreglo = new string[GridView1.Rows.Count, 7];
foreach (GridViewRow row in GridView1.Rows)
{
    CheckBox chkbox1 = (CheckBox)row.FindControl("chkActive");
    if (chkbox1.Checked)
    {
        arreglo[row.RowIndex, 0] = GridView1.Rows[row.RowIndex].Cells[1].Text;
        string[,] array = new string[GridView2.Rows.Count, 2];
        foreach (GridViewRow col in GridView2.Rows)
            array[col.RowIndex, 0] = GridView2.Rows[col.RowIndex].Cells[1].Text;
        txtInsert.Text = txtInsert.Text + "insert into  T_USUARIO_dETALLE(id_usuario,campana,fecha,fecha_carga,id_superv,estado_dotacion) values ('" + arreglo[row.RowIndex, 0].ToString() + "', '" + lblcampana.Text + "','"+ GridView2.Rows[0].Cells[1].Text  + "','" + LBLSUPERV.Text + "','" + ddlEstado.SelectedValue + "')";
    }
}

¡Gracias por la ayuda!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando acceder a una celda de GridView2 que se encuentra fuera del rango de valores válidos. El mensaje de error que proporcionas sugiere que el índice 1 al que intentas acceder no es válido para GridView2.Rows[0].Cells, lo que significa que probablemente GridView2 no contenga ninguna fila o celda.

    Mencionas que estás obteniendo el segundo valor (date) de un cuadro de texto, pero no está claro cómo estás rellenando los valores en GridView2. Si estás rellenando GridView2 dinámicamente en función de la entrada del usuario, es posible que desees asegurarte de que el control contenga los valores esperados antes de intentar acceder a ellos.

    Además, es posible que desees considerar el uso de consultas SQL parametrizadas para evitar vulnerabilidades de inyección SQL. Tu enfoque actual está concatenando valores en una cadena SQL, lo que generalmente no se recomienda.

Comments are closed.