Laden...

Data Table in Gridview mit Gruppierung

Erstellt von amayer1983 vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.179 Views
A
amayer1983 Themenstarter:in
10 Beiträge seit 2014
vor 5 Jahren
Data Table in Gridview mit Gruppierung

Hallo,

ich hoffe ich bin im Richtigen Forum.

Ich habe eine DataTable, welche ich aus SQL befülle.
Diese Möchte ich nun in einem DataGridview anzeigen.
Soweit funktioniert auch schon alles.

Nun möchte ich die Einträge nach einer bestimmten Spalte Gruppieren.
d.h. die erste Zeile mit Beleg = 1234 soll angezeigt werden, alle anderen Zeilen mit identischer Belegnummer ausgeblendet.

Ich habe das ganze aktuell wie folgt gelöst, funktioniert leider net:


            da.Fill(dt);
            dt.DefaultView.ToTable(true, "Belegnummer");
            dt1 = dt;
            dataGridView1.DataSource = dt1;

4.931 Beiträge seit 2008
vor 5 Jahren

Evtl.


da.Fill(dt);
dt1 = dt.DefaultView.ToTable(true, "Belegnummer");
dataGridView1.DataSource = dt1;

?

A
amayer1983 Themenstarter:in
10 Beiträge seit 2014
vor 5 Jahren

Hallo,

Vielen Dank, hat so erst mal funktioniert, leider sind nun alle anderen Spalten ausgeblendet, ich würde aber gerne einfach nur von jeder Belegnummer nur eine Zeile haben.

A
amayer1983 Themenstarter:in
10 Beiträge seit 2014
vor 5 Jahren

hab das ganze aktuell folgendermaßen am rennen.
Funktioniert auf jeden Fall, Laufzeit ist unkritisch, da max. 500 Zeilen vor Sortieren...

            string altereintrag = "";
            foreach (DataRow row in dt.Rows)
            {
                string aktuellereintrag = row["Belegnummer"].ToString();
                if (aktuellereintrag == altereintrag)

                    row.Delete();

                altereintrag = aktuellereintrag;
                
            }

            
                dataGridView1.DataSource = dt;
H
523 Beiträge seit 2008
vor 5 Jahren

Das kannst Du auch direkt über die SQL-Abfrage lösen.

Beispiel:

SELECT DISTINCT(belegnummer) as belegnummer FROM TABLE WHERE ....
4.931 Beiträge seit 2008
vor 5 Jahren

@hypersurf: Damit wird aber auch nur die Belegnummer angezeigt, nicht die restlichen Spalten.

Das geht nur mit einem INNER JOIN à la Get single records when duplicate records exist.

H
523 Beiträge seit 2008
vor 5 Jahren

Hab' ich überlesen, sorry.

@amayer1983: Poste mal Dein SQL-Statement, dann können wir Dir weiterhelfen.