Pointui Home 2 - Utiliser des objets de type DataTable

Modifié le vendredi, 06 février 2009 11:30 par Christophe — Catégorisé en: Pointui Home

La classe DataTable est extrêmement importante. Elle fournit une structure générique pour beaucoup de types de données différents qui proviennent de l'appareil comme les rendez-vous, les contacts, les tâches, les messages, les applications actives et même des documents XML. Plutôt que d'utiliser un moyen d'accès spécifique à chacun de ces types de données, nous avons décidé de créer une classe DataTable permettant d'en uniformiser l'accès. Il est important que vous deveniez familier avec l'usage d'objets de type DataTable car la plupart des choses dont vous avez besoin s'appuie sur ce type de données.

Une DataTable contient de 0 à n lignes (rows). Chaque ligne peut représenter une entité (comme un rendez-vous ou un contact), une ligne contenant les détails d'une seule entité. Étant donné que votre calendrier contient plusieurs rendez-vous, cela signifie que la DataTable associée comprendra beaucoup de lignes, avec une ligne par rendez-vous.

Chaque ligne contient une ou plusieurs colonnes (columns). Une colonne correspond à une information rattachée à l'entité représentée par la ligne. Par exemple, si une ligne correspond à un rendez-vous, elle contiendra alors les colonnes "Objet", "Début", "Fin", "Fréquence", etc. Mais si une ligne correspond à un message elle contiendra alors les colonnes "Sujet", "Destinataire", "Lu", etc.

La plupart des types de données contenus dans des objets DataTable supportent uniquement une navigation séquentielle dans les lignes de la structure. Pour être plus précis, l'accès aléatoire à une ligne n'est pas supporté. Habituellement, une DataTable est initialisée et exploitée jusqu'à la ligne finale comme le montre l'exemple suivant :

DataTable rendezvous; 
//Alimentation de la table avec tous les rendez-vous 
Appointments.GetAppointments(rendezvous); 
 
//Boucle pour parcourir la table des rendez-vous 
while (rendezvous.MoveNext()) 
{ 
	//faire quelque chose avec ce rendez-vous 
} 

Certains types de données autorisent l'instruction MoveTo(index) pour un accès ciblé à une occurrence. Dans ce cas, la documentation le précise.

Une liste entière d'élément est généralement requise pour une DataTable et cette liste est alors restreinte en utilisant SetRestriction() à partir d'une requête si nécessaire. Il n'est pas plus performant de requêter toute la table et de la restreindre étant donné que la restriction effectue une tentative pour parcourir la DataTable en utilisant MoveNext() etc.

Le nombre de lignes d'une DataTable peut être limité en utilisant SetMaxItems().