Autor Beitrag
Kamil1984
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 15.12.08 16:25 
Hallo liebe Forum-Gemeinde,
ich hab eine CSV-Datei die ich einlese und in einem DatagridView darstelle.
Die 2. Spalte ist editierbar und soll in den setting in der ich eine arraylist habe abspeichern.
ausblenden C#-Quelltext
1:
2:
3:
4:
                for (int i = 0; i < clsGlobal.dataGridAnzeige.Count; i++)
                {
                    Properties.Settings.Default.NeueZuordnung.Add(clsGlobal.dataGridAnzeige[i].SpaltenZiel);
                }

Es kommt immer folgender Fehler: NullReferenceException wurde nicht behandelt. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Soo fitt bin ich in C# noch nicht deswegen weiss ich nicht ob das die eleganteste Lösung ist zum speichern der Daten.
Würde mich über eure hilfe sehr freuen
MfG Kamil

Moderiert von user profile iconKha: Code- durch C#-Tags ersetzt
Kamil1984 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 15.12.08 17:11 
hmm bin ich hier im richtigen forum?oder eher c#? :)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 15.12.08 17:18 
Beim ersten Zugriff ist die Settings-Datei ja noch leer, es gibt also auch noch keine ArrayList. Deshalb musst du den Inhalt von "NeueZuordnung" erst einmal auf null prüfen und dann ggf. eine neue ArrayList erstellen und zuweisen.

_________________
>λ=
Kamil1984 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 15.12.08 17:32 
Hallo, erstmal danke für deine Antwort. Habe wohl vergessen dazuzuschreiben das beim speichern das Problem auftritt.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
        private void buttonDataGridSpeichern_Click(object sender, EventArgs e)
        {

                for (int i = 0; i < clsGlobal.dataGridAnzeige.Count; i++)
                {
                    Properties.Settings.Default.NeueZuordnung.Add(clsGlobal.dataGridAnzeige[i].SpaltenZiel);
                }
                    Properties.Settings.Default.Save();
        }

weiss echt nicht mehr weiter dauernd kommt der gleiche Fehler.
MfG Kamil

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Kamil1984 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 15.12.08 18:37 
ok hab es hinbekommen.
man musste bei den Settings einfach einen wert zuweisen:
<?xml version="1.0" encoding="utf-16"?>
Habe allerdings das Problem, dass wenn ich abspeichere er das nicht überschreibt sondern nur dranhängt. Sodass ich bei 10 mal speichern a 12 Zeilen gleicht einen count von 120 habe. Wie kann man das verhindern?
Danke
MfG
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 15.12.08 19:10 
Naja, was erwartest Du, wenn Du immer Add benutzt? Je nachdem, wie NeueZuordnung aufgebaut ist, musst Du vorher mit IndexOf oder Contains o.ä. prüfen, ob der Wert schon enthalten ist.

Jürgen
Kamil1984 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 15.12.08 20:13 
hallo, stimmt ergibt sinn :)
dachte eher man muss statt .save, .reload benutzen oder so.
naja werd es mal morgen probieren und gebe dann bescheid
danke
MfG Kamil