Benutzer mit den meisten Antworten
Fehler beim Erstellen einer zusätzlichen Spalte in der DataTable mit Einfügen von Werten einer anderen Spalte

Frage
-
Hallo,
einer DataTable füge ich eine weitere Spalte hinzu, in welche ich Werte aus zwei anderen Spalten einfüge:
vereinfachte Variante:
table.Columns.Add("name", typeof(string), "firstname + ' ' + lastname");
Das funktioniert bestens. Wenn allerdings einer der Spaltenname, derssen Werte ausgelesen werden soll, einen Zusatz [V] enthält (ist so vorgegeben), dann kommt die Fehlermeldung: Syntax Error: Missing operand after '[V]' operator.
table.Columns.Add("name", typeof(string), "firstname [V] + ' ' + lastname");
Offensichtlich werden die eckigen Klammern als Sonderzeichen erkannt.
Die eckigen Klammern sind vorgegeben. Was muss ich ändern, damit dies funktioniert?
Alexander
- Bearbeitet Robert BreitenhoferModerator Freitag, 15. April 2011 15:17 Formatierung
Antworten
-
Hallo Alexander,
Du mußt die eckige Klammer mit einem Escape-Zeichen (Backslash) versehen:
DataTable table = new DataTable(); table.Columns.Add("lastname"); table.Columns.Add("firstname [V]"); table.Columns.Add("name", typeof(string), @"[firstname [V\]] + ' ' + lastname");
DataColumn.Expression-Eigenschaft:
http://msdn.microsoft.com/de-de/library/system.data.datacolumn.expression(v=VS.100).aspxGruß
Marcel- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 15. April 2011 15:58
- Als Antwort markiert AlexanderRi Samstag, 16. April 2011 19:32
Alle Antworten
-
Hallo Alexander,
Du mußt die eckige Klammer mit einem Escape-Zeichen (Backslash) versehen:
DataTable table = new DataTable(); table.Columns.Add("lastname"); table.Columns.Add("firstname [V]"); table.Columns.Add("name", typeof(string), @"[firstname [V\]] + ' ' + lastname");
DataColumn.Expression-Eigenschaft:
http://msdn.microsoft.com/de-de/library/system.data.datacolumn.expression(v=VS.100).aspxGruß
Marcel- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 15. April 2011 15:58
- Als Antwort markiert AlexanderRi Samstag, 16. April 2011 19:32
-
Hallo Alexander,
Marcel hat schon die Antwort gegeben.
Nur noch eine kurze Anmerkung dazu von mir.Man wählt normal keine solchen Bezeichnungen für die Spalten.
Wenn man eine andere Form als Anzeige benötigt, ändert man diese in HeaderText-Eigenschaften, oder DisplayName-Eigenschaften der jeweiligen Controls, die das anzeigen. Die eckigen Klammern haben ja eine Sonderbedeutung, sodass überhaupt erst (zum Beispiel) Leerzeichen etwa möglich sind in Spaltennamen.
ciao Frank