Framework:Syntax von Ausdrücken
Beim Erstellen eines Ausdrucks verweist man mit der ColumnName-Eigenschaft auf Spalten einer Tabelle. Wenn z. B. der ColumnName einer Spalte "UnitPrice" und der einer anderen "Quantity" lautet, ergibt sich folgender Ausdruck:
"[UnitPrice] * [Quantity]"
Beim Erstellen eines Ausdrucks für einen Filter schließt man Zeichenfolgen in einfache Anführungszeichen ein:
"LastName = 'Jones'"
Die folgenden Zeichen sind Sonderzeichen und müssen, wie nachstehend beschrieben, mit Escapezeichen versehen werden, wenn sie in einem Spaltennamen verwendet werden sollen:
- ~
- (
- )
- #
- \
- /
- =
- >
- <
- +
- -
- *
- %
- &
- |
- ^
- '
- "
- [
- ]
Wenn ein Spaltenname eines der oben aufgeführten Zeichen enthält, muss der Name in Klammern eingeschlossen werden. Wenn Sie z. B. eine Spalte mit dem Namen "Column#" in einem Ausdruck verwenden, schreiben Sie "[Column#]":
Total * [Column#]
Da Klammern Sonderzeichen sind, müssen Sie einen umgekehrten Schrägstrich ("\") als Escapezeichen für die Klammer verwenden, wenn diese Teil des Spaltennamens ist. Eine Spalte mit dem Namen "Column[]" wird z. B. wie folgt geschrieben:
Total * [Column[\]]
(Nur die zweite Klammer muss mit einem Escapezeichen versehen werden.)
Benutzerdefinierte Werte
Benutzerdefinierte Werte können in Ausdrücken verwendet und mit Spaltenwerten verglichen werden. Zeichenfolgenwerte müssen in einfache Anführungszeichen eingeschlossen werden. Datumswerte müssen in Nummernzeichen (#) eingeschlossen werden. Dezimalwerte und wissenschaftliche Schreibweise sind für numerische Werte zulässig.
Beispiel:
"FirstName = 'John'" "Price <= 50.00" "Birthdate < #1/31/82#" Wandeln Sie bei Spalten mit Enumerationswerten den Wert in einen Ganzzahldatentyp um. Beispiel: "EnumColumn = 5"
Operatoren
Die Verkettung mit den booleschen Operatoren AND, OR und NOT ist zulässig. Sie können mit Hilfe von Klammern Klauseln gruppieren und den Vorrang erzwingen. Der AND-Operator hat Vorrang gegenüber anderen Operatoren. Beispiel: (LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'
Beim Erstellen von Vergleichsausdrücken sind die folgenden Operatoren zulässig:
- <
- >
- <=
- >=
- <>
- =
- IN
- LIKE
Die folgenden arithmetischen Operatoren werden ebenfalls in Ausdrücken unterstützt:
- + (Addition)
- - (Subtraktion)
- * (Multiplikation)
- / (Division)
- % (Modulo)
Zeichenfolgenoperatoren
Verwenden Sie zum Verketten einer Zeichenfolge das Pluszeichen (+). Ob die Groß- und Kleinschreibung bei Zeichenfolgenvergleichen berücksichtigt wird, wird durch den Wert der CaseSensitive-Eigenschaft der DataSet-Klasse bestimmt. Sie können diesen Wert jedoch mit der CaseSensitive-Eigenschaft der DataTable-Klasse überschreiben.
Platzhalterzeichen
Sowohl * als auch % können in einem LIKE-Vergleich synonym als Platzhalter verwendet werden. Wenn die Zeichenfolge in einer LIKE-Klausel * oder % enthält, müssen diese Zeichen in Klammern ([]) als Escapezeichen eingeschlossen werden. Wenn eine Klammer in der Klausel enthalten ist, müssen die Klammerzeichen mit Klammern als Escapezeichen versehen werden (z. B. [[] oder []]). Ein Platzhalter ist sowohl an Anfang und Ende eines Musters als auch nur am Ende oder nur am Anfang eines Musters zulässig.
Beispiel:
"ItemName LIKE '*product*'" "ItemName LIKE '*product'" "ItemName LIKE 'product*'"
Platzhalter innerhalb einer Zeichenfolge sind unzulässig. 'te*xt' ist z.B. nicht zulässig.
Functions
Die folgenden Funktionen werden ebenfalls unterstützt
CONVERT
| Beschreibung | Konvertiert einen bestimmten Ausdruck in einen angegebenen .NET Framework-Typ |
| Syntax | Convert(expression, type) |
| Argumente | expression – Der zu konvertierende Ausdruck Type – der .NET Framework-Typ, in den der Wert konvertiert wird. |
| Beispiel | myDataColumn.Expression="Convert(total, 'System.Int32')" |
LEN
| Beschreibung | Ruft die Länge einer Zeichenkette ab. |
| Syntax | LEN(expression) |
| Argumente | expression – Die auszuwertende Zeichenkette |
| Beispiel | myDataColumn.Expression="Len(ItemName)" |
ISNULL
| Beschreibung | Überprüft einen Ausdruck und gibt entweder den überprüften Ausdruck oder einen Ersatzwert zurück. |
| Syntax | ISNULL(expression, replacementvalue) |
| Argumente |
expression – Der zu überprüfende Ausdruck. |
| Beispiel | myDataColumn.Expression="IsNull(price, -1)" |
Alle Konvertierungen sind gültig, mit folgenden Ausnahmen: Boolean kann nur in und aus Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, String und in sich selbst umgewandelt werden. Char kann in und aus Int32, UInt32, String und in sich selbst umgewandelt werden. DateTime kann nur in und aus String und in sich selbst umgewandelt werden. TimeSpan kann nur in und aus String und in sich selbst umgewandelt werden.
IIF
| Beschreibung | Ruft je nach dem Ergebnis eines logischen Ausdrucks einen von zwei Werten ab. |
| Syntax | IIF(expr, truepart, falsepart) |
| Argumente | expr – Der auszuwertende Ausdruck truepart – Der Wert, der zurückgegeben wird, wenn der Ausdruck True ist falsepart - Der Wert, der zurückgegeben wird, wenn der Ausdruck False ist |
| Beispiel | myDataColumn.Expression = "IIF(total>1000, 'expensive', 'dear') |
TRIM
| Beschreibung | Entfernt alle vorangestellten oder nachgestellten Leerraumzeichen, z.B. \r, \n, \t und ' '. |
| Syntax | TRIM(expression) |
| Argumente | expression – der zu kürzende Ausdruck. |
SUBSTRING
| Beschreibung | Ruft eine Teilzeichenfolge einer angegebenen Länge ab, beginnend an einem angegebenen Punkt in einer Zeichenfolge. |
| Syntax | SUBSTRING(expression, start, length) |
| Argumente |
expression – Die Quellzeichenfolge für die Teilzeichenfolge. |
| Beispiel | myDataColumn.Expression = "SUBSTRING(phone, 7, 8)" |
| Hinweis Sie können die Expression-Eigenschaft zurücksetzen, indem Sie ihr einen NULL-Wert oder eine leere Zeichenfolge zuordnen. Wenn ein Standardwert für die Ausdrucksspalte festgelegt ist, wird allen bereits ausgefüllten Zeilen nach dem Zurücksetzen der Expression-Eigenschaft der Standardwert zugeordnet. |