Announcement

Collapse
No announcement yet.

DataGrid-Suche mit "Teil"-Strings

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataGrid-Suche mit "Teil"-Strings

    Hallo C#-User,

    ich habe ein Problem, welches ich dringend lösen muss, bisher aber noch keine Lösung gefunden habe.

    Ich stelle das Ergebnis einer Abfrage in einem DataGrid dar. Wenn ich nun innerhalb des Grid´s in einer bestimmten Spalte einen Wert suche ( alles strings ), benutze ich, weil ich bisher noch keine andere Lösung gefunden habe, die Methoden "Find" und "FindRows" des DataView-Objekts.

    Leider finden diese Methoden jedoch nur "exakte" Übereinstimmungen. Möchte ich einen Teilstring suchen, z. B. "mü" vom Namen "Müller", komme ich mit diesen Methoden nicht weiter. Ich benötige eine Suchfunktion, die "Groß- und Kleinschreibung" ignoriert und auch "Teil"-Strings findet.

    Hat jemand eine Idee?

  • #2
    Hallo,

    der folgende Auszug stammt aus einem Artikel, der vor einiger Zeit im dot.net magazin erschienen ist:

    Da in diesem konkreten Fall die Tabelle mit den Anschriftsdatensätzen nur einige hundert Einträge enthält, kann ich mir den Luxus erlauben, die vollständige Ergebnismenge sofort beim Aufruf des Formulars in das DataSet zu laden. Die Controls werden dann über ein DataView mit dem DataSet verbunden. Der Anwender kann nun die angezeigten Adressdatensätze filtern, indem er die Anfangsbuchstaben des gesuchten Namens eintippt. Mit jedem zusätzlichen Buchstaben verringert sich die sichtbare Treffermenge. Zur Umsetzung reicht es aus, nur eine Ereignisbehandlungsmethode für das TextChanged-Ereignis der TextBox zu aktivieren, in der die <b>DataView</b>-Eigenschaft <b>RowFilter</b> bei jedem eingetippten Zeichen neu gesetzt wird:
    <pre>
    private void textBoxFilterAutor_TextChanged(object sender, System.EventArgs e)
    {
    string sFilterStr = String.Format(
    "Nachname LIKE '{0}%'",
    textBoxFilterAutor.Text);
    dataViewAdressen.RowFilter = sFilterStr;
    }
    </pre&gt

    Comment


    • #3
      Hallo Andreas Kosch,

      zunächst danke für die Antwort. Ich denke, dass diese Funktion tatsächlich nur etwas für DataSet´s ist, die nur wenige Daten enthalten. Die Performance dürfte wohl mit zunehmender Größe entsprechend abnehmen.

      Aber ich habe bereits einen anderen Ansatz gefunden. Sollte er funktionieren, werde ich - wenn gewünscht - den Code hier zur Ansicht darstellen..

      Comment

      Working...
      X