Autor Beitrag
dinazavric
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Fr 13.05.11 13:21 
Hallo,

ich habe eine XML-Datei, aus der ich ein DataSet erstelle. In meiner Anwendung habe ich mehrere Forms, die mit dem DataSet arbeiten (jedes Form hat ein internes DataSet). Die Änderungen werden dann immer in der einen XML-Datei übernommen. Leider, wenn ich das eine Form schließe, wird das interne DataSet nicht aktualisiert. Ich möchte aber, dass die Daten gleich beim Schließen eines Forms in allen anderen mitübernommen werden. Es kann entweder beim Schließen des Forms über "x"-Button oder über eins dafür vorgesehenen "Übernehmen"-Button geschehen. Leider weiß ich nicht wie ich ein DataSet für alle Forms erstelle (global). Eine Datenbank würde ich ungern benutzen...

Bin für jeden Tipp oder Hinweis dankbar!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 13.05.11 15:38 
Hallo,

wenn du immer für alle Forms dasselbe DataSet verwenden willst, dann übergebe jeweils das DataSet per Konstruktor bzw. als Eigenschaft an die anderen Forms weiter.
Am besten, nur das Hauptform erzeugt dann die eigentliche Instanz per 'new'.

Falls es sehr viele Forms sind, kannst du auch eine Klasse ähnlich wie die Settings selbst erzeugen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
class MySettings
{
  static MySettings()
  {
     Default = new MySettings();
     Default.DataSet = new DataSet();
  }

  public static MySettings Default { getprivate set; }

  public DataSet DataSet { getset; }
}

Zugriff dann jeweils pro Form per
ausblenden C#-Quelltext
1:
DataSet ds = MySettings.Default.DataSet;					

Für diesen Beitrag haben gedankt: avoid