Entwickler-Ecke
C# - Die Sprache - RowFilter mit variabler Spalte und Zeile
pepe-je - Sa 27.08.11 12:43
Titel: RowFilter mit variabler Spalte und Zeile
Ich habe ein Problem mit dem RowFilter. Wenn ich bestimmte Werte für Spalte und Zeile einsetze, klappt es einwandfrei. Ab er ich möchte mit variablen Spalten und Zeilen arbeiten, speziell mit Knoten eines TreeViews.
Ich habe das so geschrieben;
Code:
C#-Quelltext
1: 2: 3:
| string col = parentNode.Value; string rw = selectedNode.Value; dv.RowFilter = "col = rw"; |
Aber es kommt die Fehlermeldung "Spalte [col] nicht gefunden". Was habe ich falsch gemacht?
Kann mir jemand helfen?
Schon jetzt vielen Dank
Peter
Moderiert von
Th69: Titel geändert: RowFiler->RowFilter
Kha - Sa 27.08.11 13:01
Denk nochmal drüber nach:
C#-Quelltext
1: 2: 3:
| string col = "foo"; string rw = "bar"; Console.WriteLine("col = rw"); |
Was ist der Fehler, wie kannst du ihn beheben?
pepe-je - Sa 27.08.11 15:44
Hallo, Kha,
in Deinem Beispiel muß es natürlich
C#-Quelltext
1:
| Console.WriteLine(col + " =" + rw); |
heißen.
Aber die Sysntax von RowFilter sieht so aus
C#-Quelltext
1:
| RowFilter rf = "Spaltenname = 'Zeilenname'"; |
Für eine spezielle Spalte und Zeile also so
C#-Quelltext
1:
| RowFilter rf = " Name = 'Max'"; |
Dia analoge Lösung zu oben
C#-Quelltext
1: 2: 3:
| string col = parentNode.Value; string rw = selectedNode.Value; dv.RowFilter = " col ' +' rw "; |
klappt nicht
Kha - Sa 27.08.11 16:03
pepe-je hat folgendes geschrieben : |
in Deinem Beispiel muß es natürlich
C#-Quelltext 1:
| Console.WriteLine(col + " =" + rw); |
heißen. |
Dann sollte dir klar sein, dass dein Code ebenso wenig Sinn macht wie meiner: Wie soll der Inhalt von col in den String finden? Meinetwegen noch einmal mit Quotes:
C#-Quelltext
1:
| Console.WriteLine("col = 'rw'"); |
pepe-je - Sa 27.08.11 17:33
Für Console.WriteLine ist
C#-Quelltext
1: 2: 3:
| string col = "foo"; string rw = "bar"; Console.WriteLine(col '=' rw); |
richtig. Man erhält das erwartete Ergebnis
Die Schreibweise
C#-Quelltext
1: 2: 3:
| string col = "foo"; string rw = "bar"; Console.WriteLine("col = rw"); |
ergibt
nicht das erwartete Ergebnis
Im Falle von RowFilter gehen beide Varianten nicht, weil offenbar eine andere Syntax als bei Console.WriteLine gefordert wird.
Th69 - Sa 27.08.11 17:46
Hallo pepe-je,
du meinst wohl
C#-Quelltext
1: 2: 3:
| col + '=' + rw col + "=" + rw |
(ansonsten kompiliert es ja nicht ohne Fehler).
Und außerdem hattest du das doch schon vorher als Antwort auf Kha gepostet.
Bei Strings im RowFilter müssen aber die einfachen Anführungsstriche (im String selber) stehen, d.h.
Darauf hättest du aber auch nach Kha's zweitem Posting kommen können.
So, nun sollte aber dieser Thread damit beendet sein...
pepe-je - Sa 27.08.11 18:16
Euch beiden vielen Dank für Eure Mühe.
Peter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!