Entwickler-Ecke

WinForms - Treeview problem


coolace - Sa 06.06.09 17:15
Titel: Treeview problem
Hy,

versuch seit Tagen Daten zu speichern und wieder in der Treeview anzuzeigen, aber irgendwie
zeigt er immer einen Teil korrekt an und den letzten Teil zeigt er öfter mal doppelt an oder
vergisst Sachen.
z.B.
Hallo,Malla
Hanna,franz
kaffka,franz
macht er nach dem öffnen und wiedereinlesen das draus.
Hallo,Malla
kaffka,franz
kaffka,franz

Ich vermute das der Fehler hier beim einlesen ist aber weiß ned warum er des in der Treeview
so falsch anzeigt

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
    List<Kontakte> neukontakt = new List<Kontakte>();
        TreeNode wurzelnode, kindknoten;
        Kontakte nk = new Kontakte();
       
        public Adressen()
        {
            InitializeComponent();
            try
            {
                wurzelnode = new TreeNode();
                wurzelnode.Name = "Adressendatenbank";
                wurzelnode.Text = "Adressendatenbank";
                treeView1.Nodes.Add(wurzelnode);
                FileStream fs = new FileStream(@"H:\Butler\kontakt.bin", FileMode.Open);
                BinaryFormatter bins = new BinaryFormatter();
                neukontakt = (List<Kontakte>)bins.Deserialize(fs);
                fs.Close();
                foreach (Kontakte temp in neukontakt)
                {
                    kindknoten = new TreeNode();
                    kindknoten.Text = temp.Vorname + "," + temp.Nachname;
                    wurzelnode.Nodes.Add(kindknoten);
                    //treeView1.Nodes.Add(kindknoten);                                                  
                }
                treeView1.ExpandAll();
            }
            catch (Exception)
            {
                MessageBox.Show(this"Fehler beim Öffnen der Datei""Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }                  
        }


Danke und Gruß

Coolace


JüTho - Sa 06.06.09 17:28

Hallo,

ich habe mich mit TreeView und Serialisierung noch nicht beschäftigt. Hast du einmal in der kontakt.bin kontrolliert, ob richtig gespeichert wird (sofern diese Datei halbwegs lesbar ist)? Wie lautet der Code zum Speichern? Vielleicht wäre Xml-Serialisierung praktischer?

Gruß Jürgen


coolace - So 07.06.09 22:28

Hy,

danke für deine Antwort, sorry war die letzten Tage krank.

Ich hab dir mal das komplette Projekt hochgeladen.
Das Problem befindet sich in der Adressen.cs

Danke und Gruß

Coolace


JüTho - Mo 08.06.09 11:04

Die kontakt.bin fehlt im Projekt; genau die sollte aber kontrolliert werden.

Aber wie gesagt: Mit Serialisierung habe ich mich noch nicht befasst, also endet hier meine Hilfe. Jürgen


coolace - Mo 08.06.09 12:39

Hab die kontakt bin überprüft und es sieht soweit aus als würde
er es sauber speichern.
Trotzdem vielen Dank. Hat vielleicht noch jemand eine Idee?

Gruß

Coolace


Nemag - Mo 08.06.09 13:28

Servus

hast du das ganze eigentlich mal durch den Debugger gejagt. Kommen denn die richtigen Zeilen raus. Ich sag einfach mal das nicht das Treeview schuld hat, sondern dein Deserilizemotticht bzw. wie Jürgen schon sagte dass ehr die Speicherung bereits schief geht.

(Hab mir die Files noch nicht näher anschauen können, wenn dann erst heute abend)


PS.: [klugscheiß] Franz Kafka [/klugscheiß]


coolace - Di 09.06.09 11:30

Hy,

vielen Dank, werd die mal im Debugger anschauen, vielleicht liegt beim Einlesen das Problem.

Gruß

Coolace


coolace - Di 09.06.09 13:06

Hy,

vielen Dank an alle beteiligten. nach dem 50 mal Debugger durchlaufen lassen
habe ich den Fehler gefunden. Asche auf mein Haupt, ich hab das passende Objekt
mit den Daten nur 1 mal erzeugt und immer wieder in das selbe Objekt reingespeichert.
Nach dem ich es nun korrigiert habe passt es.

Danke und Gruß

Coolace