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;
Evtl.
da.Fill(dt);
dt1 = dt.DefaultView.ToTable(true, "Belegnummer");
dataGridView1.DataSource = dt1;
?
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.
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;
Das kannst Du auch direkt über die SQL-Abfrage lösen.
Beispiel:
SELECT DISTINCT(belegnummer) as belegnummer FROM TABLE WHERE ....
@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.
Hab' ich überlesen, sorry.
@amayer1983: Poste mal Dein SQL-Statement, dann können wir Dir weiterhelfen.