Benutzer mit den meisten Antworten
Datenbank abfrage in eine csv schreiben

Frage
-
Hallo zusammen,
ich versuche immer noch eine csv zu erhalten. Habe das bis jetzt noch nicht geschafft ich hab versucht die ratschlage von euch zu verarbeiten es ist mir aber nicht gelungen zu einem sinnvollem Ergebnis zu kommen.
Darf ich euch nochmal zu diesem Thema um eure Hilfe bitten?Ich danke euch im Voraus super Doll
Seit gegrüßt euer DerNeuling
using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Xml.Xsl; using System.Text; namespace ShowDataRows { class Program { static void Main(string[] args) { SqlConnection con = new SqlConnection(); con.ConnectionString = @"Data Source=.\SQLEXPRESS; Initial Catalog=AdventureWorksLT; Integrated Security=true"; SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = "SELECT AddressID, AddressLine1, AddressLine2, City, StateProvince, CountryRegion, PostalCode, rowguid, ModifiedDate FROM SalesLT.Address"; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds, "AddressID"); // Ausgabe der Ergenisliste DataTable tbl = ds.Tables["AddressID"]; ds.WriteXml(@"H:\\Address.xml"); for (int i = 0; i < tbl.Rows.Count; i++) { Console.WriteLine("{0,-8}{1} {2} {3} {4} {5} {6} {7} {8}", tbl.Rows[i]["AddressID"], tbl.Rows[i]["AddressLine1"], tbl.Rows[i]["AddressLine2"], tbl.Rows[i]["City"], tbl.Rows[i]["StateProvince"], tbl.Rows[i]["CountryRegion"], tbl.Rows[i]["PostalCode"], tbl.Rows[i]["rowguid"], tbl.Rows[i]["ModifiedDate"]); } string oldXML = ConfigurationManager.AppSettings[@"H:\\Address.xml"]; string xsltLocation = ConfigurationManager.AppSettings[@"H:\\Address.xslt"]; string newCSV = ConfigurationManager.AppSettings[@"H:\\Address.csv"]; XslCompiledTransform transform = new XslCompiledTransform(); transform.Load(@"H:\\Address.xslt"); transform.Transform(oldXML, newCSV); Console.WriteLine(); } } }
Antworten
-
Hallo,
eine CSV-Datei zu schreiben ist oft nicht so einfach wie es auf den ersten Blick scheint.
Denn es gibt viele kleine Unterschiede, was das Behandeln von Trennern, Zahlenformaten uam. angeht.Dein Ansatz, eine (Pseudo)-XML Datei zu schreiben und sie mit Xslt zu transformieren
ist zwar möglich, macht aber eher mehr Aufwand.Es gibt einige vorgefertigte Lösungen, die dazu verwendet werden können:
- CSVHelpers
- FileHelpers Library siehe auch Codeproject-Artikel (leider bisher nicht auf .NET 4.0 angepasst)
- LINQ to CSV library
Selbst wenn Du es für Dich selbst umsetzen möchtest, so solltest Du Dir einiges davon anschauen,
da Du so die Stolpersteine siehst, mit denen Du konfrontiert wirst.Gruß Elmar
- Als Antwort markiert DerNeuling Freitag, 29. April 2011 14:55
-
Hallo,
wenn man eine CSV Datei benötigt ist der Umweg über eine XML Datei verlorene Liebesmühe
(zumal Du da oben in Schleife kein XML erzeugst).Wenn man wirklich mal XML braucht, kann das DataSet mit WriteXml verwenden,
vorausgesetzt die Datenmenge ist klein genug,
Oder auch LINQ To Xml in Verbindung mit einem DataReader.Das würde ich aber in jedem Falle getrennt abhandeln.
Gruß Elmar
- Als Antwort markiert DerNeuling Freitag, 29. April 2011 15:54
Alle Antworten
-
Hallo,
eine CSV-Datei zu schreiben ist oft nicht so einfach wie es auf den ersten Blick scheint.
Denn es gibt viele kleine Unterschiede, was das Behandeln von Trennern, Zahlenformaten uam. angeht.Dein Ansatz, eine (Pseudo)-XML Datei zu schreiben und sie mit Xslt zu transformieren
ist zwar möglich, macht aber eher mehr Aufwand.Es gibt einige vorgefertigte Lösungen, die dazu verwendet werden können:
- CSVHelpers
- FileHelpers Library siehe auch Codeproject-Artikel (leider bisher nicht auf .NET 4.0 angepasst)
- LINQ to CSV library
Selbst wenn Du es für Dich selbst umsetzen möchtest, so solltest Du Dir einiges davon anschauen,
da Du so die Stolpersteine siehst, mit denen Du konfrontiert wirst.Gruß Elmar
- Als Antwort markiert DerNeuling Freitag, 29. April 2011 14:55
-
Hallo Elmar,
ich bin dir für dein Hilfe sehr dankbar weil ich schon eine ganze weil versuche eine xml in eine csv zu konvertieren. Ich weiß das xml der heutige Standard ist und csv nicht. Dennoch ist es vielleicht mal nötig und gut wenn man das auch kann ich werde deinen Ratschlägen folgen und melde mich denn wieder.
Danke für deine Antwort
DerNeuling
-
Hallo,
wenn man eine CSV Datei benötigt ist der Umweg über eine XML Datei verlorene Liebesmühe
(zumal Du da oben in Schleife kein XML erzeugst).Wenn man wirklich mal XML braucht, kann das DataSet mit WriteXml verwenden,
vorausgesetzt die Datenmenge ist klein genug,
Oder auch LINQ To Xml in Verbindung mit einem DataReader.Das würde ich aber in jedem Falle getrennt abhandeln.
Gruß Elmar
- Als Antwort markiert DerNeuling Freitag, 29. April 2011 15:54
-
Hallo Elmar,
du hast mir sehr geholfen mit deinen Tipps ich denke das ist jetzt endlich der richtige weg um meine csv zu bekommen ich wünsche dir ein Erholsames Wochenende ich lasse es dich wissen wenn ich mein Programm fertig habe.
Grüße DerNeuling
-
Mit C# CSV-Dateien zu bearbeiten ist hier beschrieben: http://codekicker.de/fragen/CSV-Parser-CSharp-fuer-CSV-Dateien-und-auch-CSV-Ausgabe/581 Dort gibt es lauter CSV-Parser für C# und damit auch für .NET allgemein.