none
Problemas con BindingSource RRS feed

  • Pregunta

  • El asunto es que para poder realizar una serie de busquedas en la base de datos, por diferentes campos, me he tenido que crear un sistema de busqueda, mediante el cual realizo los filtrados.

    Cada vez que realizo un filtrado lanzo la consulta contra la base de datos para recuperar unica y exclusivamente el numero de registro resultado de dicho filtrado.

    Para ello utilizo un DataTable para recuperar los datos un BindingSource para enlazar los controles a un DataGridView.

    El caso es que para reflescar los datos lo que hago es volver a establer el origen de los datos en el BindingSource y luego volver a diseñar el DataGridView, los nuevos datos capturados en el DataTable

    DataTable --> dtDatos, BindingSource --> bsDatos, DataGridView--> dgvDatos

    Code Snippet

    dtDatos = EjecutaConsulta(Texto); // Con esto obtengo los datos
    bsDatos.DataSource= dtDatos; // Con esto vuelco los datos al BindingSource
    dgvDatos.DataSource= dgvDatos; //Con esto recargo los datos en el DataGridView
    dgvDatos.Reflesh();



    El caso es me da un error en la linea bsDatos.DataSource= dtDatos;. El error es:

    El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
    Nombre del parámetro: index (ArgumentOutRangeException).

    No se porque da el error ya que normalmente utilizo este sistema para recargar los datos.

    Haber si me podeis ayudar. Gracias de antemano.

    miércoles, 9 de julio de 2008 6:56

Respuestas

  • Ya esta solucionado.

    El problema no estaba en el reflesco, si no en el evento CurrentCellChanged del DataGridView.

    En este evento recargaba una serie de labels donde monstraba información, mediante la localizacion del primer registro del DataGridView y la segunda columna en el DataGridView de dicho registro.

    Al realizar el refresco dicha columna no existe, por eso me daba el error de que el indice estaba fuera de rango.

    Lo que hice para anular el error es anular el codigo de este evento remplanzando por el de CellClick y funciona todo de forma correcta.
    viernes, 11 de julio de 2008 6:24