Entwickler-Ecke

Sonstiges (.NET) - DataGrid bestimmte Spalten in Settings Speichern


Kamil1984 - Mo 15.12.08 16:25
Titel: DataGrid bestimmte Spalten in Settings Speichern
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.

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 - Mo 15.12.08 17:11

hmm bin ich hier im richtigen forum?oder eher c#? :)


Kha - 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 - Mo 15.12.08 17:32

Hallo, erstmal danke für deine Antwort. Habe wohl vergessen dazuzuschreiben das beim speichern das Problem auftritt.


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 - 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 - 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 - 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