Formation PUB770 : ASP.NET WebForms, H-2015 Manipuler les données obtenues par une source de données

18.1 Récupérer les données obtenues par une source de données


Il est possible d'utiliser une source de données pour effectuer un SELECT et récupérer par programmation le résultat de cette requête. Ceci nous permettra de manipuler les données à notre guise, un peu comme si on avait fait la requête « à bras », tout en profitant des facilités des sources de données.

▼Publicité Le texte se poursuit plus bas

Utilisation d'un DataView

Un DataView est un objet permettant de stocker un ensemble de données en mémoire. Attention : le mot DataView réfère à une vue au sens SQL. Il ne s'agit pas d'un contrôle visuel.

Un DataView est tout à fait approprié pour stocker le résultat d'une requête. 

En mémoire, le contenu du DataView sera un tableau à deux dimensions. On aura une ligne par enregistrement retourné. Pour chaque enregistrement, on aura une colonne pour chaque champ demandé dans la requête.

1 Apple iPad 4e génération 16 Go Wi-Fi
2 Ordinateur Toshiba Satellite L850
4 Clé USB Kingston 32 Go
8 Router D-Link sans fil 802.11b/g/n

Requête qui ne retourne qu'un seul enregistrement

Si la requête permet de retrouver 0 ou 1 enregistrement, la structure du code pour récupérer le résultat de la requête dans un DataView ressemblera à ceci :

Ex :

Fichier .aspx.cs (ASP.NET avec C#)

DataView dataViewProduit = (DataView)dataSourceProduit.Select(DataSourceSelectArguments.Empty);


if (dataViewProduit.Count > 0)   

{

    DataRowView donnees = dataViewProduit[0];   // retrouve la première ligne de données (ce sera la seule)

    id = ...

    description = ...

}

else

{

    labelMessage.Text = "...";

}

Requête permettant de retouner plusieurs enregistrements (boucler dans les résultats de la requête)

Lorsque votre requête peut retourner plusieurs enregistrements, vous aurez probablement besoin de boucler dans les résultats de la requête et de faire un traitement particulier pour certains enregistrements. Le code suivant vous permettra d'y arriver.

Ex :

Fichier .aspx.cs (ASP.NET avec C#)

DataView dataViewProduit = (DataView)dataSourceProduit.Select(DataSourceSelectArguments.Empty);


if (dataViewProduit.Count > 0)   

{

    foreach (DataRowView donnees in dataViewProduit)

    {

        if (...)

        {

            ...

        }

        else if (...)

        {

            ...

        }

        else if (...)

        {

            ...

            // dans cet exemple, on utilise break pour sortir de la boucle foreach lorsqu'on a trouvé une valeur donnée

            // à vous d'adapter ce code pour répondre à vos besoins

            break;   

        }

    }

}

else

{

    labelMessage.Text = "...";

}

Extraire les données du DataView

Pour manipuler les données, on doit extraire une ligne du tableau en la stockant dans un objet de type DataRowView. Cette extraction devra être réalisée même si la requête n'a retourné qu'un seul enregistrement.

Ex : si la requêne ne retourne qu'un seul enregistrement :

Fichier .aspx.cs (ASP.NET avec C#)

DataRowView donnees = dataViewProduit[0];   // retrouve la première ligne de données

ou, si la requête peut retourner plusieurs enregistrements :

Fichier .aspx.cs (ASP.NET avec C#)

foreach (DataRowView donnees in dataViewProduit)

{

    ...

}

Dans cet exemple, la variable donnees aura la forme suivante :

1 Apple iPad 4e génération 16 Go Wi-Fi

Le DataRowView est un vecteur. Chaque champ peut donc être lu à l'aide d'un indice. Plutôt que de travailler avec des indices numériques, on travaillera avec le nom du champ.

Attention : un élément tiré d'un DataRowView est un objet. Il faut donc le transtyper pour pouvoir l'utiliser correctement.

Ex :

Fichier .aspx.cs (ASP.NET avec C#)

int id = Convert.ToInt32(donnees["produit_id"]);    // contiendra la valeur 1

String description = donnees["produit_description"].ToString();   // contiendra la valeur « Apple iPad 4e génération 16 Go Wi-Fi »

Pour plus d'information

« Les bases fondamentales du langage Transact SQL». Dotnet France. http://www.dotnet-france.com/Documents/SQLServer/Les%20bases%20fondamentales%20du%20langage%20Transact%20SQL.pdf

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Par Christiane Lagacé
Dernière révision le 18 août 2017
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre