Fragensteller
DataGridView in Textdatei speichern

Frage
Alle Antworten
-
Hi,
speicher die Datenquelle deines DataGridView Controls. Wie genau Du das machen kannst, hängt davon ab, welche Datenquelle Du verwendest.
Bei einem DataSet, bzw. einer DataTable gäbe es bspw. die WriteXml Methode:
http://msdn.microsoft.com/de-de/library/vstudio/x3zy2whb.aspx
Bei eigenen Klassen könntest Du serialisieren/deserialisieren.
Wenns Du nichts dergleichen verwenden solltest, geht es auch manuell:
http://stackoverflow.com/questions/8457197/c-sharp-datagridview-to-text-file
Daher poste bitte mal, welche Datenquelle Du an das GridView Control bindest.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Dienstag, 16. Oktober 2012 18:21
-
Hi,
Danke erst mal für die Antwort.
also die Daten im DGV kommen aus einem TreeView. Der Code dazu in C# sieht so aus:foreach
(DataGridViewRow selRow in dataGridView.SelectedRows)
{
selRow.Cells[1].Value = temp_01;
selRow.Cells[2].Value = temp_04;
selRow.Cells[3].Value = temp_02;
}
Die einzelnen Rows werden so zugefügt:
dataGridView.Rows.Add();
Jedesmal wenn eine Row markiert wurde wird also mit Hilfe des ersten Codes aus dem Treeview die Daten in die Row des DGV geschrieben. Hierbei handelt es sich dann um 4 spalten.
-
Hi,
die Daten kommen aus einem Treeview? Der Code bzw. die Erklärung kommt mir etwas komisch vor. Warum schreibst Du Daten aus einem Treeview Control (wobei temp_01, temp_02, ... keine Treeview Eigenschaften sind^^) in eine oder mehrere Zeilen eines DataGridView Controls?
So oder so: Wenn keine Datenquelle existiert, würde ich das Beispiel aus dem letztgenannten Link vorschlagen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Zum Hintergrund warum die Daten aus dem TreeView stammen: Ich habe eine Eisenbahn Simulationssoftware und im TreeView werden die Rollmaterialien angezeigt. Mit Hilfe der Variablen temp_01 usw. lese ich die Eigenschaften der Daten aus, hier z.B. der Name und der Dateispeicherort. Diese Daten werden dann in die spalten des DGV übernommen. Die einzelnen Spalteninhalten sollen dann in eine Textdatei geschrieben werden, um aus den einzelnen Rollmaterialien einen Zugverband zu erstellen, der in einer Textdatei gespeichert ist.
-
Hi,
das hört sich für mich so an als sei das DataGridView nur eine Art "Zwischenspeichernotlösung". Falls dem so sein sollte: Schmeiß wech :)
Du solltest dann eher eine Klasse mit den benötigten Eigenschaften erstellen.
public class DeineKlasse { public string Name { get; set; } public string Description { get; set; } ... }
Dann erstellst Du dir eine Variable, die eine Liste von Objekten dieser Klasse aufnehmen kann.
List<DeineKlasse> myValues = new List<DeineKlasse>();
Anstelle die Daten dann ins DataGridView zu schreiben, erzeugst Du dann neue Elemente in myValues. Diese kannst Du dann am Schluss einfach serialisieren und als XML Datei abspeichern. Beim nächsten mal deserialisierst Du die XML Inhalte und hast dann wieder eine List<DeineKlasse>. Hierfür siehe das Beispiel im zweiten Link. Das ist zwar in VB, der Code ist aber recht übersichtlich.
Falls Du die Daten dennoch im DataGridView anzeigen willst, kannst Du myValues auch als BindingSouce für das DataGridView angeben, dann hast Du alles auf einmal erledigt :)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo,
Danke. Ich glaube das werde ich mal versuchen mit der Liste, da die Daten auch nach her in einer bestimmten Form in der Textdatei stehen sollen.
Also im Zwischenspeicher TreeView sehen die Daten folgendermassen aus:
Lfd, Nr | Name | Richtung (1 oder 0) | Speicherort.
In der Datei später sollen sie so aussehen:
[MODELS]
0001 = "SCHIENE\TRIEBWAGEN\DBAG_ICE3-TZ303-403-503-EPVI_SK2.3dm"
0002 = "SCHIENE\TRIEBWAGEN\DBAG_ICE3-TZ303-403-603-EPVI_SK2.3dm"
0003 = "SCHIENE\TRIEBWAGEN\DBAG_ICE3-TZ303-403-703-EPVI_SK2.3dm"
0004 = "SCHIENE\TRIEBWAGEN\DBAG_ICE3-TZ303-403-803-EPVI_SK2.3dm"
0005 = "SCHIENE\TRIEBWAGEN\DBAG_ICE3-TZ303-403-303-EPVI_SK2.3dm"
0006 = "SCHIENE\TRIEBWAGEN\DBAG_ICE3-TZ303-403-203-EPVI_SK2.3dm"
0007 = "SCHIENE\TRIEBWAGEN\DBAG_ICE3-TZ303-403-103-EPVI_SK2.3dm"
0008 = "SCHIENE\TRIEBWAGEN\DBAG_ICE3-TZ303-403-003-EPVI_SK2.3dm"[NAMES]
0000 = "#DBAG_ICE3-Tz303-403-503-EpVI_SK2-v7"
0001 = "DBAG_ICE3-Tz303-403-503-EpVI_SK2-v7"
0002 = "DBAG_ICE3-Tz303-403-603-EpVI_SK2-v7"
0003 = "DBAG_ICE3-Tz303-403-703-EpVI_SK2-v7"
0004 = "DBAG_ICE3-Tz303-403-803-EpVI_SK2-v7"
0005 = "DBAG_ICE3-Tz303-403-303-EpVI_SK2-v7"
0006 = "DBAG_ICE3-Tz303-403-203-EpVI_SK2-v7"
0007 = "DBAG_ICE3-Tz303-403-103-EpVI_SK2-v7"
0008 = "DBAG_ICE3-Tz303-403-003-EpVI_SK2-v7"[DIRECTIONS]
0000 = 0
0001 = 0
0002 = 0
0003 = 1
0004 = 1
0005 = 0
0006 = 0
0007 = 1
0008 = 1 -
Hi,
warum genau dieses Format? Müssen die Dateien auch mit anderen Programmen, die nur dieses Format verstehen, verwendet werden?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Ja, die Dateien (werden dann als .rss-Dateien abgespeichert) müssen dieses Format haben, damit die Eisenbahnsimulation aus dieser rss Datei in der 3D Ansicht einen Zugverband darstellen kann. Das heisst ich möchte einen Zugverband ausserhalb der Simulation erstellen, daher muss dieses Format so genommen werden.