c# wie ist es richtig?

xlon

Mitglied
Hallo zusammen,

ich habe eine kleine Frage zur objektorientierte programmierung.

Ausgangslage:

in Form 1 sind in einem Datagridview alle Computer aufgelistet. Mit einem doppelklick auf ein einen Computer wird Form2 geöffnet und alle alle inhalte für dieses einen Computer dagelegt.
Die Daten sollen immer UpToDate sein.

Variante 1:

ich fülle das Datagrid so:
Code:
this.ComputerDataTableTableAdapter.Fill(this.dataSetComputer.ComputerDataTable);

und über gebe Form2 die id von dem Computer und mache wieder eine Abfrage

oder Variante 2:

Ich erstelle mir eine Klasse Computer, für jeden Datensatz wird ein Computer angelegt. Und ich übergebe Form2 einfach das Object.

Code:
private List<Computer> GetComputerFromReader(SqlDataReader reader)
        {
            List<Computer> list = new List<Computer>();

            if (reader == null || !reader.HasRows)
            {
                return list; //leere Liste zurückgeben
            }

            //Alle Zeilen der Ergebnismenge durchlaufen.
            while (reader.Read())
            {
                Computer computer = new Computer();
               
                //Alle Spalten in einer Zeile der Ergebnismenge durchlaufen
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    switch (reader.GetName(i).ToLower())
                    {
                        case "id":
                            computer.id = reader.GetInt64(i);
                            break;
                        case "rechnername":
                            computer.Rechnername = reader.GetString(i);
                            break;
                    }
                }

                list.Add(computer);
            }

            return list;
        }


Meine Frage zu Variante 2 ist, wie kann ich die ComputerListe aktuell halten? Erstelle ich für jede Abfrage eine neue Computerliste? wie lösche ich die Objecte die schon in der vorhandenen Liste sind?

Viele Grüße
 
Zurück