Recherche d'un enregistrement dans une datatable et positionnement d'un datagridview sur cet enregistrement

Description

Le DataSource du DataGridView doit être une BindingSource.

Un BindingSource permet par sa fonction Find de trouver l'indice d'un enregistrement et ensuite s'y positionner par la propriété Position.
Mais, le find ne permet qu'une condition d'égalité entre une seule collonne et une seule valeur.
Pour permettre des conditions plus complexes, l'appel à ces fonctionnalités est précédé d'une recherche dans la table par un filtre sur un DataView qui sélectionne les enregustrements de la table qui répondent à certaines conditions.
Un enregistrement est choisi dans le résultat de cette rechercher selon des critères d'orientations (précédent, suivant, premier, dernier, vers le haut, vers le bas).
Selon les besoins on peut utiliser l'une des trois (3) définitions de recherche.

1- Sur une seule colonne avec un filtre qui sera généré par le module selon les critères fournis.

2- En fournissant directement un filtre avec des conditions d'orientation de la recherche.

3- Par une utilisation directe des fonctionnalités Find et Position d'un BindingSource.

Testé sur une table de plus de 75,000 enregistrements, la recherche est rapide et beaucoup plus qu'une recher par itération ou par un tri sur un DataView.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.