Laden...

DataGridView und Filter: IndexOutOfRangeException

Erstellt von timonb vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.046 Views
T
timonb Themenstarter:in
18 Beiträge seit 2008
vor 15 Jahren
DataGridView und Filter: IndexOutOfRangeException

Hallo,

ich habe eine DataGridView, verbunden mit BindingSource und Co.
Jetzt habe ich noch eine Combobox mit Fahrzeugen zur Auswahl. Sobald sich ein Wert in der Auswahl ändert wird dies als Filter auf die BindingSource angewendet.

Eigentlich klappt die Sache nur wenn keine Einträge zu diesem Fahrzeug in der BindingSource gefunden werden, kommt die Meldung ausm Anhang.

In der DataGridView ist komischerweise immer das erste Feld des ersten Datensatzes markiert bzw. ausgewählt. Kanns daran liegen?

Danke für Eure Hilfe!

TimonB

T
109 Beiträge seit 2008
vor 15 Jahren

Hi,

wenn keine datensätze vorhanden sind versucht deine "for schleife" trotzdem einmal einen datensatz zu holen! es hilft eine prüfung davor zu machen ob datensätze != 0
damit sollte das problem behoben werden.

Torley

365 Beiträge seit 2007
vor 15 Jahren

Kann mich Torley nur anschliessen.
Vor dem Schleifendurchlauf auf vorhandene Datensätze prüfen.


if(DataGridView.Rows.Count > 0)
{
    // Tu Etwas
};

greetz da kubi.

5.299 Beiträge seit 2008
vor 15 Jahren

Hi!

Du könntest doch auch richtiges DataBinding anwenden.
Angenommen die Tabellen "Fahrzeug" und "Fahrt" im Dataset, mit einer 1:n Relation verknüpft.
Dann kannste die Combo per BindingSource an Fahrzeug binden (FahrzeugSource), und das Grid an "Fahrt", wobei DataSource der BindingSource des Grids die FahrzeugSource ist.
Fertig, kein Filter konstruieren, und auch keine komischen Exceptions (so Gott will).

Der frühe Apfel fängt den Wurm.

V
86 Beiträge seit 2008
vor 15 Jahren

@timonb
Erst an den Entwickler wenden wenn es mit seiner Anwendung Probleme gibt! 😁