Announcement

Collapse
No announcement yet.

Zeile im DataGridView setzen, aber wie?

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

  • Zeile im DataGridView setzen, aber wie?

    Hallo,

    Ich habe so meine Probleme beim Finden des Index einer Zeile:

    Ausgangspunkt:
    Es existiert: ein Formular + ein DataGridView. Beides ist miteinander verbunden, d.h. wenn ich im DataGridView eine Zeile anwähle, werden im Formular die richtigen Daten angezeigt.
    Nächster Punkt: Das Formular besitzt ein Textfeld, in dem ich den PK eingeben kann. Über diesen PK möchte ich die dazu passende Zeile finden mit

    DataRow[] suchErgebnis = this.Tabelle.Select("Id = " + eingabe);
    DataRow gesuchteZeile = suchErgebnis[0];

    Das funktioniert auch, gar kein Problem.
    Wenn ich das alles richtig verstanden habe, kann ich jetzt auf dieser Zeile Änderungen durchführen und dann in die DataTable übernehmen, oder?

    Aber: Dazu möchte ich die Daten in meine Formular laden.

    Foglendes habe ich mir überlegt (, da sich meine DataGridView ja auch anpassen muss): dem DataGridView sagen, dass er seinen aktuellen Stand auf meine gefundene Zeile setzen soll.
    Ich bekomme aber nicht heraus wie das gehen soll. Habe über Google nur so halbe Lösungen gefunden, die ich nicht verstehe mit Befehlen, die einen INDEX verlangen. Wo bekomme ich denn den Index meiner Zeile her? Oder ist das gleich dem PK???

    Kennt sich jemand damit aus oder hat eine ganz andere Idee?

  • #2
    Hallo,

    das DataGridView wird doch über die von Visual Studio generierte BindingSource-Komponente an das typisierte DataSet gebunden. Wenn die Anzeige im DataGridView synchronisiert werden soll, muss die Eigenschaft <b>Position</b> gesetzt werden (dahinter versteckt BindingSource den <i>CurrencyManager</i>). Die <b>Find</b>-Methode der BindingSource findet die Datensatzposition entsprechend der Sortierreihenfolge, die zum gesuchten Primärschlüsselwert passt:

    testTblBindingSource.Position = testTblBindingSource.Find("id", eingabe)

    Comment

    Working...
    X