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!
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 índice1
al que intentas acceder no es válido paraGridView2.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 enGridView2
. Si estás rellenandoGridView2
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.