none
Datenbank abfrage in eine csv schreiben RRS feed

  • 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();
        }
      }
    }
      
    
    
    
     
    
    
    Donnerstag, 28. April 2011 12:04

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:

    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
    Donnerstag, 28. April 2011 14:11
  • 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
    Donnerstag, 28. April 2011 16:20

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:

    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
    Donnerstag, 28. April 2011 14:11
  • 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

     

     

    Donnerstag, 28. April 2011 15:51
  • 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
    Donnerstag, 28. April 2011 16:20
  • 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

    Freitag, 29. April 2011 14:54
  • Hallo,

    auch Dir ein schönes Wochenende.

    Sollte es noch Probleme bei der Umsetzung geben, darfst Du gerne nachfragen.

    Gruß Elmar

    Freitag, 29. April 2011 16:02
  • 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.
    Sonntag, 11. September 2011 21:36