SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: gabecq en Miércoles 1 de Marzo de 2006, 09:10

Título: Excepción En Dataadapter.fill(datatable)
Publicado 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.
Título: Re: Excepción En Dataadapter.fill(datatable)
Publicado por: hellscream en Jueves 2 de Marzo de 2006, 03:17
Cambia:
dt.Rows.Clear();
dt.Columns.Clear();

Por:
dt.Clear();
Título: Re: Excepción En Dataadapter.fill(datatable)
Publicado por: gabecq en Jueves 2 de Marzo de 2006, 09:06
Gracias hellscream, pero sigue igual :-(
Título: Re: Excepción En Dataadapter.fill(datatable)
Publicado por: hellscream en Jueves 2 de Marzo de 2006, 14:55
En todo caso brinda una descripción del error más detallada...
Título: Re: Excepción En Dataadapter.fill(datatable)
Publicado por: sergiotarrillo en Jueves 2 de Marzo de 2006, 19:35
Porque tienes que hacerle clear() :S.

No es necesario hacer eso apra llenar a partir de un dataAdapter.

Saludos,
Título: Re: Excepción En Dataadapter.fill(datatable)
Publicado por: hellscream en Viernes 3 de Marzo de 2006, 03:01
Cita de: "sergiotarrillo"
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)
Título: Re: Excepción En Dataadapter.fill(datatable)
Publicado por: sergiotarrillo en Viernes 3 de Marzo de 2006, 03:24
porque no creas una nueva tabla?, manda mas detalles de toda la funcion.

Saludos,