[C#]Problem mit DataSet

Pitchblack

Mitglied
Hallo,
ich möchte eine kleine Konsolenanwendung schreiben, die mir aus meinem DataSet, das aus zwei Tabellen (Person und Begleiter) und einer 1:n Beziehung(PersonBegleiter) besteht, zu jeden Teilnehmer alle Werte in eine txt Datei schreibt. Ich benutze C# als Programmiersprache.
Es steht also kein DataGridView zur Verfügung. Mein Problem ist, dass ich nicht weiß, wie ich an die Zeilen in der DataTable herankomme.

Hier ist der Hauptteil meiner Anwendung

Code:
FileStream fs = File.Open("[Pfad]\\teilnehmernamen.txt", FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            sw.Write("Begleitung; Vorname; Nachname" + System.Environment.NewLine);
            
            foreach (DataSet.PersonRow person in DataSet.PersonDataTable) // hier ist mein Problem
            {
                this.checkName(person.Name);
               
                sw.Write("y; "+vorname + "; " + nachname + System.Environment.NewLine);
                int anzahl_b = person.GetBegleiterRows().Length;

                foreach (DataSet.BegleiterRow begleitung in person.GetBegleiterRows()) //das funktioniert
                {
                    try
                    {
                        this.checkName(begleitung.Teilnehmername);
                
                        sw.Write("x; "+vorname + "; " + nachname + System.Environment.NewLine);
                    }
                    catch (Exception ex)
                    { }
                }
            }
            sw.Close();
            fs.Close();
}

Worauf muss denn meine äußere Foreach Schleife zugreifen, damit es läuft?
 

deepthroat

Erfahrenes Mitglied
Hi.

Ist zwar nicht ganz das richtige Forum - hier geht's um C/C++ und nicht um .NET (C#, VB etc.) - aber ich würd's mal mit
C#:
foreach (DataSet.PersonRow person in DataSet.PersonDataTable.Rows)
probieren.

Gruß
 

Pitchblack

Mitglied
Danke für die schnelle Antwort, aber das PersonDataTable hat keine Rows. Auf die Idee war ich schon nämlich selbst gekommen. Kann es sein, dass ich es casten muss? Nur wüsste ich nicht zu was.

P.S.: Sorry, dass ich den Beitrag im falschen Thread ertellt habe. Der Admin darf ihn natürlich verschieben.
 
Zuletzt bearbeitet:

deepthroat

Erfahrenes Mitglied
Ah, OK. Du benutzt da anscheinend ein typisiertes DataSet. Allerdings ist es schon merkwürdig das deine Klasse anscheinend "DataSet" heißt - genauso wie System.Data.DataSet...

Probier's mal so:
C#:
foreach (DataSet.PersonRow person in DataSet.Person) {

Gruß
 

Pitchblack

Mitglied
Ich habe meinen Fehler gefunden.
Ich habe nicht die Instanz vom DataSet benutzt um auf die PersonDataTable zuzugreifen. Nachdem ich den Fehler bemerkt hatte, konnte ich auch die Rows aus dem PersonDataTable ansprechen.

Trotzdem danke für die Hilfestellung!
 

Neue Beiträge