DataColumn.Expression, propriété (System.Data)

Bibliothèque de classes .NET Framework 
DataColumn.Expression, propriété 

Obtient ou définit l'expression utilisée pour filtrer des lignes, calculer les valeurs d'une colonne ou créer une colonne agrégat.

Espace de noms : System.Data
Assembly : System.Data (dans system.data.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
Public Property Expression As String


Visual Basic (Utilisation)
Dim instance As DataColumn
Dim value As String

value = instance.Expression

instance.Expression = value


C#
public string Expression { get; set; }


C++
public:
property String^ Expression {
    String^ get ();
    void set (String^ value);
}


J#
/** @property */
public String get_Expression ()

/** @property */
public void set_Expression (String value)


JScript
public function get Expression () : String

public function set Expression (value : String)

Valeur de la propriété

Expression permettant de calculer la valeur d'une colonne ou de créer une colonne agrégat. Le type de retour d'une expression est déterminé par le DataType de la colonne.
ExceptionsExceptions
Type d'exceptionCondition

ArgumentException

La valeur true est affectée à la propriété AutoIncrement ou Unique.

FormatException

Si vous utilisez la fonction CONVERT, le résultat de l'évaluation de l'expression est une chaîne, mais la chaîne ne contient pas de représentation pouvant être convertie en paramètre de type.

InvalidCastException

Lorsque vous utilisez la fonction CONVERT, le cast demandé est impossible. Consultez la fonction Conversion dans la section suivante pour obtenir des informations détaillées sur les casts possibles.

ArgumentOutOfRangeException

Lorsque vous utilisez la fonction SUBSTRING, l'argument de départ est hors limites.

- ou -

Lorsque vous utilisez la fonction SUBSTRING, l'argument de longueur est hors limites.

Exception

Lorsque vous utilisez la fonction LEN ou la fonction TRIM, le résultat de l'évaluation de l'expression n'est pas une chaîne. Cela comprend les expressions dont le résultat de l'évaluation est Char.

NotesNotes

La propriété Expression permet notamment de créer des colonnes calculées. Par exemple, pour calculer le montant d'une taxe, le prix unitaire est multiplié par le taux de la taxe d'une région spécifique. Comme les taux des taxes varient selon la région, il est impossible d'insérer un taux de taxe unique dans une colonne. En effet, la valeur est calculée à l'aide de la propriété Expression, comme illustré dans le code Visual Basic, dans la section suivante :

DataSet1.Tables("Products").Columns("tax").Expression = "UnitPrice * 0.086"

Une autre utilisation consiste à créer une colonne agrégat. Semblable à une valeur calculée, un agrégat effectue une opération en se basant sur l'intégralité du jeu de lignes de DataTable. Un exemple simple consiste à compter le nombre de lignes retournées dans le jeu. Ceci est la méthode que vous utiliseriez pour compter le nombre de transactions effectuées par un vendeur particulier, comme illustré dans le code Visual Basic suivant :



 DataSet1.Tables("Orders").Columns("OrderCount").Expression = "Count(OrderID)"

Syntaxe d'expression

Lorsque vous créez une expression, utilisez la propriété ColumnName pour faire référence à des colonnes. Par exemple, si ColumnName d'une colonne est "UnitPrice" et un autre "Quantity", l'expression est la suivante :

"UnitPrice * Quantity"

RemarqueRemarque

Si une colonne est utilisée dans une expression, l'expression est dite avoir une dépendance sur cette colonne. Si une colonne dépendante est renommée ou supprimée, aucune exception n'est levée. Une exception sera levée lorsque la colonne d'expression désormais interrompue fait l'objet d'un accès.

Lorsque vous créez une expression pour un filtre, mettez les chaînes entre guillemets simples :

"LastName = 'Jones'"

Les caractères suivants sont des caractères spéciaux et doivent correspondre à des caractères d'échappement, comme expliqué ici, pour être utilisés dans un nom de colonne :

\n (saut de ligne)

\t (tabulation)

\r (retour chariot)

~

(

)

#

\

/

=

>

<

+

-

*

%

&

|

^

'

"

[

]

Si un nom de colonne contient un des caractères précédents, ce nom doit être placé entre crochets. Par exemple, pour utiliser la colonne appelée "Column#" dans une expression, vous devez écrire "[Column#]" :

Total * [Column#]

Comme les crochets sont des caractères spéciaux, vous devez utiliser une barre oblique inverse ("\") pour activer une séquence d'échappement pour le crochet, s'il fait partie d'un nom de colonne. Par exemple, une colonne appelée "Column[]" doit être écrite de la manière suivante :

Total * [Column[\]]

(Seule le deuxième crochet doit faire l'objet d'une séquence d'échappement.)

VALEURS DÉFINIES PAR L'UTILISATEUR

Les valeurs définies par l'utilisateur peuvent être utilisées dans des expressions pour être comparées à des valeurs de colonne. Les valeurs de chaîne doivent être placées entre guillemets simples. Les valeurs de date doivent être entourées de signes dièse (#). Les décimales et la notation scientifique sont autorisées pour des valeurs numériques. Par exemple :

"FirstName = 'John'"

"Price <= 50.00"

"Birthdate < #1/31/82#"

Pour les colonnes qui contiennent des valeurs d'énumération, effectuez un cast de la valeur en type de données integer. Par exemple :

"EnumColumn = 5"

OPÉRATEURS

La concaténation est autorisée à l'aide des opérateurs booléens AND, OR et NOT. Vous pouvez utiliser des parenthèses pour regrouper des clauses et forcer la priorité. L'opérateur AND a priorité sur les autres opérateurs. Par exemple :

(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'

Lorsque vous créez des expressions de comparaison, les opérateurs suivants sont autorisés :

<

>

<=

>=

<>

=

IN

LIKE

Les opérateurs arithmétiques suivants sont également pris en charge dans les expressions :

+ (addition)

- (soustraction)

* (multiplication)

/ (division)

% (modulo)

OPÉRATEURS DE CHAÎNE

Pour concaténer une chaîne, utilisez le caractère +. La valeur de la propriété CaseSensitive de la classe DataSet détermine si les comparaisons de chaînes respectent la casse. Toutefois, vous pouvez substituer cette valeur par la propriété CaseSensitive de la classe DataTable.

CARACTÈRES GÉNÉRIQUES

Les caractères * et % peuvent être utilisés indifféremment comme caractères génériques dans une comparaison LIKE. Si la chaîne située dans une clause LIKE contient un caractère * ou %, ceux-ci doivent correspondre à des caractères d'échappement au moyen de crochets ([]). Si la clause contient des crochets, ils doivent correspondre à des caractères d'échappement au moyen de crochets (par exemple [[] ou []]). Un caractère générique est autorisé au début et/ou à la fin d'un modèle. Exemple :

"ItemName LIKE '*product*'"

"ItemName LIKE '*product'"

"ItemName LIKE 'product*'"

Les caractères génériques ne sont pas autorisés au milieu d'une chaîne. Par exemple, "te*xt" n'est pas autorisé.

RÉFÉRENCES AUX RELATIONS PARENTS/ENFANTS

Une table parente peut être référencée dans une expression en ajoutant Parent au début du nom de la colonne. Par exemple, Parent.Price fait référence à la colonne de la table parente appelée Price.

Une colonne d'une table enfant peut être référencée dans une expression en ajoutant Child au début du nom de la colonne. Toutefois, une relation enfant pouvant retourner plusieurs lignes, vous devez inclure la référence à la colonne enfant dans une fonction d'agrégation. Par exemple, Sum(Child.Price) retournerait la somme de la colonne appelée Price dans la table enfant.

Si une table possède plusieurs enfants, la syntaxe est la suivante : Child(RelationName). Par exemple, si une table possède deux tables enfants nommées Customers et Orders, et si l'objet DataRelation est nommé Customers2Orders, la référence sera la suivante :

Avg(Child(Customers2Orders).Quantity)

AGRÉGATS

Les types d'agrégats suivants sont pris en charge :

Sum (Somme)

Avg (Moyenne)

Min (Minimum)

Max (Maximum)

Count (Nombre)

StDev (Écart type statistique)

Var (Variance statistique).

Les agrégats s'exécutent généralement avec des relations. Vous pouvez créer une expression d'agrégation à l'aide d'une des fonctions répertoriées précédemment et d'une colonne de table enfant, de la manière décrite à la section RÉFÉRENCES AUX RELATIONS PARENTS/ENFANTS ci-dessus. Exemple :

Avg(Child.Price)

Avg(Child(Orders2Details).Price)

Un agrégat peut également être effectué sur une table simple. Par exemple, pour créer un résumé des valeurs d'une colonne appelée "Price" :

Sum(Price)

RemarqueRemarque

Si vous utilisez une table unique pour créer un agrégat, il n'existe aucune fonctionnalité group-by. En effet, toutes les lignes affichent la même valeur dans la colonne.

Si une table ne contient aucune ligne, les fonctions d'agrégation retournent référence Null (Nothing en Visual Basic).

Les types de données peuvent toujours être déterminés en examinant la propriété DataType d'une colonne. Vous pouvez également convertir les types de données à l'aide de la fonction Convert, illustrée dans la section suivante.

FUNCTIONS

Les fonctions suivantes sont également prises en charge :

CONVERT

 

Description

Convertit l'expression particulière en type .NET Framework spécifié.

Syntaxe

Convert(expression, type)

Arguments

expression -- Expression à convertir.

type -- Type .NET Framework dans lequel la valeur doit être convertie.

Exemple : myDataColumn.Expression="Convert(total, 'System.Int32')"

Toutes les conversions sont valides, hormis les exceptions suivantes : Boolean, et lui seul, peut être forcé à correspondre à Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, String et inversement. Char, et lui seul, peut être forcé à correspondre à Int32, UInt32, String et inversement. DateTime, et lui seul, peut être forcé à correspondre à String et inversement. TimeSpan, et lui seul, peut être forcé à correspondre à String et inversement.

LEN

 

Description

Obtient la longueur d'une chaîne.

Syntaxe

LEN(expression)

Arguments

expression -- Chaîne à évaluer.

Exemple : myDataColumn.Expression="Len(ItemName)"

ISNULL

 

Description

Vérifie une expression et retourne l'expression vérifiée ou une valeur de remplacement.

Syntaxe

ISNULL(expression, replacementvalue)

Arguments

expression -- Expression à vérifier.

replacementvalue -- Si l'expression est référence Null (Nothing en Visual Basic), replacementvalue est retourné.

Exemple : myDataColumn.Expression="IsNull(price, -1)"

IIF

 

Description

Obtient l'une ou l'autre valeur selon le résultat d'une expression logique.

Syntaxe

IIF(expr, truepart, falsepart)

Arguments

expr -- Expression à évaluer.

truepart -- Valeur à retourner si l'expression a la valeur true.

falsepart -- Valeur à retourner si l'expression a la valeur false.

Exemple : myDataColumn.Expression = "IIF(total>1000, 'expensive', 'dear')

TRIM

 

Description

Supprime tous les caractères vierges de début ou de fin, tels que \r, \n, \t, ' '

Syntaxe

TRIM(expression)

Arguments

expression -- Expression à tronquer.

SUBSTRING

 

Description

Obtient une sous-chaîne d'une longueur spécifiée, commençant au point déterminé de la chaîne.

Syntaxe

SUBSTRING(expression, start, length)

Arguments

expression -- Chaîne source de la sous-chaîne.

start -- Entier qui spécifie le point de départ de la sous-chaîne.

length -- Entier qui spécifie la longueur de la sous-chaîne.

Exemple : myDataColumn.Expression = "SUBSTRING(phone, 7, 8)"

RemarqueRemarque

Vous pouvez réinitialiser la propriété Expression en lui assignant une valeur null ou une chaîne vide. Si une valeur par défaut est définie sur la colonne d'expression, toutes les lignes déjà remplies se voient assigner la valeur par défaut après la réinitialisation de la propriété Expression.

ExempleExemple

L'exemple suivant crée trois colonnes dans un DataTable. La deuxième et la troisième colonne contiennent des expressions. La deuxième calcule la taxe à l'aide d'un taux de taxe variable et la troisième ajoute le résultat du calcul à la valeur de la première colonne. La table résultante s'affiche dans un contrôle DataGrid.



Visual Basic
Private Sub CalcColumns()
     Dim rate As Single = .0862
     dim table as DataTable = New DataTable 
 
     ' Create the first column.
     Dim priceColumn As DataColumn = New DataColumn
     With priceColumn
         .DataType = System.Type.GetType("System.Decimal")
         .ColumnName = "price"
         .DefaultValue = 50
     End With
     
     ' Create the second, calculated, column.
     Dim taxColumn As DataColumn = New DataColumn
     With taxColumn
         .DataType = System.Type.GetType("System.Decimal")
         .ColumnName = "tax"
         .Expression = "price * 0.0862"
     End With
     
    ' Create third column
     Dim totalColumn As DataColumn = New DataColumn
     With totalColumn
         .DataType = System.Type.GetType("System.Decimal")
         .ColumnName = "total"
         .Expression = "price + tax"
     End With
 
     ' Add columns to DataTable
     With table.Columns
         .Add(priceColumn)
         .Add(taxColumn)
         .Add(totalColumn)
     End With
    
     Dim row As DataRow= table.NewRow
     table.Rows.Add(row)
     Dim view As New DataView
     view.Table = table
     DataGrid1.DataSource = view
 End Sub


C#
private void CalcColumns()
{
    DataTable table = new DataTable ();
 
    // Create the first column.
    DataColumn priceColumn = new DataColumn();
    priceColumn.DataType = System.Type.GetType("System.Decimal");
    priceColumn.ColumnName = "price";
    priceColumn.DefaultValue = 50;
     
    // Create the second, calculated, column.
    DataColumn taxColumn = new DataColumn();
    taxColumn.DataType = System.Type.GetType("System.Decimal");
    taxColumn.ColumnName = "tax";
    taxColumn.Expression = "price * 0.0862";
     
    // Create third column.
    DataColumn totalColumn = new DataColumn();
    totalColumn.DataType = System.Type.GetType("System.Decimal");
    totalColumn.ColumnName = "total";
    totalColumn.Expression = "price + tax";

    // Add columns to DataTable.
    table.Columns.Add(priceColumn);
    table.Columns.Add(taxColumn);
    table.Columns.Add(totalColumn);

    DataRow row = table.NewRow();
    table.Rows.Add(row);
    DataView view = new DataView(table);
    dataGrid1.DataSource = view;
}
Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/system.data.datacolumn.expression.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

9 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-4366
Document créé le 18/10/06 03:53, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.data.datacolumn.expression.html Document affiché 9 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,54 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Fais bouger le monde, ton monde!

Marc Levy [Extrait de Et si c'était vrai...]
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 18:59, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)