C#, Database, DataGridView, Sorting

Nob

Mitglied
Hallo zusammen

Ich möchte meine C# - Applikation mit einer postgresql - DB verbinden.
Ich mach das wie folgt:
Code:
                NpgsqlDataAdapter da = new NpgsqlDataAdapter("SELECT a AS x, b AS y FROM c", conn);
                ds.Reset();
                da.Fill(ds);
                dt = ds.Tables[0];
                dataGridView.DataSource = dt;
Nun meine Frage:
Wenn der User jetzt auf eine Spalte klickt, sollte sich der Inhalt sortieren. Das tut es auch, aber das DataGridView tut dies selber. Ich möchte aber ein neues Query absetzten, denn im DataGridView werden nicht alle Daten angezeigt (paging) und ich möchte ja nicht nur die angezeigten Daten sortieren, sondern alle vorhandenen Daten.
Wie würdet ihr das machen?

Ich habe verschiedene Probleme damit:

1.) Ich kann zwar den Klick auf dem ColumnHeader abfangen und dann ein neues Query absetzen, aber das DataGridView sortiert zuerst und erst dann wird mein neues Query abgesetzt (unnötig). Was kann ich dagegen tun?

2.) Ich muss ja irgendwie wissen wie die Spalte in der Datenbank heisst, denn ich habe ja ein "select a AS x" verwendet, somit krieg ich als name "x", in der Datenbank heisst die Spalte aber "a". Wie würdet ihr das sauber programmieren? Ich möchte die Daten später auch in einer Form editieren können - das ganze natürlich mit meheren Tabellen und vielen schönen Forms. Wie würdet ihr die Programmstruktur aufbauen? Eine Klasse für jede Tabelle in der Datenbank, die dann die Spaltenname etc. handlet? Was wäre eine saubere Lösung?


Bin gespannt auf eure Antworten,
Danke im Voraus & Gruss
 
Zurück