SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: gabecq en Miércoles 1 de Marzo de 2006, 09:10
-
Buenos días.
En una aplicación windows, realizada en C#, tengo el siguiente código, dónde 'select' es un string con la consulta a realizar, 'bbdd' es la conexión a la base de datos (Access) y 'dt' es un objeto DataTable:
"
OleDbDataAdapter DataAdapter;
DataAdapter = new OleDbDataAdapter(select, bbdd);
dt.Rows.Clear();
dt.Columns.Clear();
DataAdapter.Fill(dt);
"
Bien, pues a partir de la segunda vez que la ejecución del programa pasa por la línea 'DataAdapter.Fill(dt);' salta la siguiente excepción:
"
Excepción del tipo 'System.IndexOutOfRangeException' en system.windows.forms.dll
Información adicional: Index was outside the bounds of the array.
"
Se me da la posibilidad de 'Continuar' o 'Interrumpir'. Si pulso 'Continuar' 2 veces la ejecución continúa sin problemas y de forma correcta. El proceso se repite cada vez que se vuelve a pasar por la línea 'DataAdapter.Fill(dt);' ¿Sabeis por qué puede ser?
Muchas gracias.
Gabecq.
-
Cambia:
dt.Rows.Clear();
dt.Columns.Clear();
Por:
dt.Clear();
-
Gracias hellscream, pero sigue igual :-(
-
En todo caso brinda una descripción del error más detallada...
-
Porque tienes que hacerle clear() :S.
No es necesario hacer eso apra llenar a partir de un dataAdapter.
Saludos,
-
Porque tienes que hacerle clear() :S.
No es necesario hacer eso apra llenar a partir de un dataAdapter.
Saludos,
El *problema* es que si la tabla ya contiene datos, estos no *desaparecen* al volver a llamar al método Fill (sucede si no existe hay restriciones del tipo PK o parecidos)
-
porque no creas una nueva tabla?, manda mas detalles de toda la funcion.
Saludos,