Laden...

Forenbeiträge von FrozenLord Ingesamt 7 Beiträge

19.01.2009 - 17:34 Uhr

Dann sieht die Methode jetzt komplett so aus:

public DataTable Listensortierer(DataTable dt, string column, string sort)
        {
            dt.DefaultView.Sort = column + " " + sort;      //Sortiert die SORTspalte, sort = Reihenfolge
                                                            //ASC = aufsteigend, DESC = absteigend    
            dt = dt.DefaultView.ToTable();                  //Leere Hilfs-Tabelle wird gefüllt
            return dt;
        }

wobei die Verwendung dann so erfolgt:

DT = Listensortierer(DT, "Spalte", "DESC");

für absteigende Reihenfolge, bzw:

DT = Listensortierer(DT, "Spalte", "ASC");

für aufsteigende Reihenfolge.

Danke für die Tipps 😃

15.01.2009 - 14:34 Uhr

Beschreibung:

Eine Methode, die eine übergebene DataTable nach einer wählbaren Spalte sortiert. Dazu wird die .Net DataTable.Sort-Methode verwendet. (Man spart also einiges an Zeilen und Zeit)


public DataTable Listensortierer(DataTable dt)
        {
            DataTable dtt = new DataTable();            //Erstellt eine leere Hilfs-Tabelle

            dt.DefaultView.Sort = "SORT DESC";    //Sortiert die "SORT"-spalte, absteigende Reihenfolge
            dtt = dt.DefaultView.ToTable();         //Leere Hilfs-Tabelle wird gefüllt
            dt = dtt;                               //Leere Tabelle wird auf alte Tabelle abgebildet
            return dt;
        }

Schlagwörter: <DataTable Methode Sort sortieren DefaultView>

Verwendung:

Einfach in einem Programm einfügen und die Tabelle (als Beispiel nennen wir sie mal DT) so sortieren lassen:

DT = Listensortierer(DT);

Das SORT in der Methode muss durch die Spaltenbezeichung ersetzt werden!!
Die Sortierrichtung ist momentan absteigend (=DESC). Um aufsteigend zu sortieren, einfach das DESC durch ASC ersetzen.

06.01.2009 - 20:19 Uhr
Datei = DateiLaden();  

Da lag mein Fehler. Das habe ich bisher nie gemacht.

Ich habe immer veruscht, die Variable direkt zu nutzen und gleichzeitig noch return(); benutzt...
Jetzt ist mir klar, wieso das nie funktioniert hat 😃

Vielen Dank für die Hilfe

06.01.2009 - 17:34 Uhr

Danke für den Tipp.

Ich habe anfangs versucht mit return einen Wert zurückzugeben, aber ich bin immer gescheitert 😦
Ich werde mir das mal genauer anschauen, aber ich habe jetzt schon das Gefühl zu wissen woran ich gescheitert bin...

06.01.2009 - 14:06 Uhr

Danke 😃

Ich weiß, dass nicht alles in dem Code optimal ist.

Ich habe damals eine ganze Weile gesucht, wie man eine Methode einen Wert zurückgeben lassen kann. Gefunden habe ich nur das out (bzw. ref).

Was wäre denn empfehlenswerter?

06.01.2009 - 13:05 Uhr

Wow 😉

Das war ja fast zu einfach...

Vielen Dank, das hat perfekt funktioniert.

06.01.2009 - 12:50 Uhr

Hi 😃

Ich bin ein C#-Neuling und schreibe gerade - oder versuche wohl eher - ein Programm zu schreiben. Ich habe die FAQs komplett durchgesehen (Titel gelesen) jedoch nichts gefunden von dem ich denke, dass es meine Frage beantwortet.

Das Programm macht (bisher) in etwa das:

Es öffnet einen Dateiöffnen-Dialog und speichert den Dateipfad als Variable. Über diesen Dateipfad soll später die Datei geöffnet und verarbeitet werden.
Das Problem ist, denke ich, dass ich das so realisiert habe:

Das ist ein Teil der Form1.cs die ich für das ganze Programm (mein ganzer Code steht also in der Form1.cs) nutze.


public Form1()
        {
            InitializeComponent();
            string Datei = null;
            DataTable Liste = new DataTable();

            DateiLaden(out Datei); //hier wird der Dateipfad als String zurückgegeben
            
            Verarb(Datei);
        }

Die Datei ist eine Exceldatei die später in ein DataTable importiert wird.

Das Programm läuft in etwa so ab:
Es startet und öffnet beim Start eine Datei (welche bis dahin nur als Dateipfad existiert) und übergibt diesen an eine Methode (Verarb). Dort wird die Datei geöffnet und verarbeitet.

Mein Problem ist nun, dass ich eine Möglichkeit suche, die Verarbeitung auf Knopfdruck zu erledigen. Ich habe also in der Form einen Knopf erstellt und diesen Knopf genannt:

        private void Knopf_Click(object sender, EventArgs e)
        {
               Verarb(Datei);
        }

Was oben nun perfekt funktioniert, verweigert hier komplett den Dienst.
ich könnte mir vorstellen, dass die oben definierte Variable nicht übergeben wird.

Und genau da liegt mein Problem, auch wenn ich mir nicht sicher bin wie ich es kurz zusammenfassen soll um es in eine Suchmaske zu quetschen.

Ich will, dass das Programm mit der am Anfang (beim Starten des Programms) geladenen Datei einmal durchläuft (das funktioniert).
Ich will jedoch auch, dass das Programm in der Lage ist per Knopfdruck nochmal diese Datei zu verarbeiten. Dazu denke ich, muss der Methode (ist das Drücken des Knopfes überhaupt eine Methode oder liegt hier ein Denkfehler?) der String mit dem Dateipfad übergeben werden, was ich bisher nicht schaffe.

Wenn ich hier im komplett falschen Unterforum bin oder der Titel anders passender wäre, so wäre es nett wenn er abgeändert würde. Ich bin mir wie gesagt nur leider nicht sicher, wohin mit dem Thema und wie ich es zusammenfassen soll.

Wenn mir jemand helfen könnte, wäre das echt super 😃