Autor Beitrag
KokaLola
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 03.11.10 22:19 
Moin - ich bins wieder ^^

Habe 2 weitere Fragen:
1. Wie kann ich ein DataGrid im xml Format mit DataSet? speichern.
2. Wie kann ich ein DataGrid im xml Format mit DataSet? einlesen.

Speichern:
ausblenden Quelltext
1:
2:
3:
4:
DataSet writeXMLSchema = new DataSet();
writeXMLSchema = (DataSet)Accounts.DataSource;
writeXMLSchema.WriteXml("AccountDaten.xml");
Accounts.DataSource = writeXMLSchema;


Einlesen:
ausblenden Quelltext
1:
2:
3:
DataSet readXMLSchema = new DataSet();
writeXMLSchema.ReadXml("AccountDaten.xml");
Accounts.DataSource = readXMLSchema;


So geht es leider irgendwie nicht :(
Mit freundlichen Grüßen
kokalola
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 04.11.10 11:14 
Hallo KokaLola,

bist du jetzt von der List<> (bzw. Array) auf DataSet als DataSource umgestiegen? Wenn nicht, dann funktioniert selbstverständlich der Cast auf (DataSet) nicht und wird eine Exception werfen...

Ich wollte schon im anderen Post erst schreiben, daß du auch alternativ DataSet (bzw. besser DataTable) als DataSource verwenden kannst, wusste aber nicht, inwiefern du schon damit gearbeitet hast.

Richtig wäre also folgendes:
du erzeugst ein DataSet mit einer DataTable und bindest diese dann an das DGV:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
DataSet dataset = new DataSet();
DataTable table = new DataTable("Accounts");

// fill dataset table...
datatable.ReadXml("AccountDaten.xml");

dataset.Tables.Add(table); // Tabelle dem DataSet hinzuzufügen

datagridview.DataSource = table; // bzw. dataset["Accounts"]

Das DataSet brauchst du auch nur, wenn du mehrere Tabellen zusammenfassen willst, ansonsten reicht einfach mit DataTable zu arbeiten.

Und das Speichern ist dann ganz einfach:
ausblenden C#-Quelltext
1:
2:
3:
table.WriteXml("AccountDaten.xml");
// bzw.
dataset["Accounts"].WriteXml("AccountDaten.xml");


Um Daten von Hand der DataTable hinzuzufügen, mußt du einzelne Zeilen (Rows) hinzufügen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
DataRow row = table.NewRow();

// Set values in the columns:
row["EMail"] = "info@test.de";
row["Password"] = "MyPassword";

// add the row to the rows collection.
table.Rows.Add(row);


Viel Erfolg noch -)
KokaLola Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Do 04.11.10 15:15 
Danke =) aber wei beziehe ich das ganze nun auf mein DataGridView?...
Im prinzip will ich ja in meinem GridView Datensätze eingeben können und diese dann abspeichern und erneut laden können...
Oder muss ich jede Zeile einzeln (mit ner for-schleife) einlesen? Das ich das gar nich in einem Schritt abspeichern kann....?