Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DataTable in CSV einlesen (Spaltenweise)
Manda
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

DataTable in CSV einlesen (Spaltenweise)

beantworten | zitieren | melden

Hallo,

ich möchte aus einem DataTable die Elemente auslesen und in eine CSV speichern.


 public static void writeCSV(DataTable _dt, String _sFilePath)
        {
            StreamWriter sw = new StreamWriter(_sFilePath, false);
            int iCol = _dt.Columns.Count;
                        
            for (int i = 0; i < iCol; i++)
            {
                sw.Write(_dt.Columns[i]);

                if (i < iCol - 1)
                {
                    sw.Write(","); //HIER MUSS WOHL WAS VERÄNDERT WERDEN
                }                
            }
            
            sw.Write(sw.NewLine);
....

Er liest es auch ein, aber packt alles in eine Spalte. Ich möchte es gerne Spaltenweise auslesen.
Bsp.:
Im DataTable: ID Name Desc Sonstiges
Beim einlesen: ID,Name,Desc,Sonstiges

Ich versuche die Einträge pro Spalte einzulesen. Hoffe ich konnte das Problem erklären.
Danke schön.

Lg
manda
private Nachricht | Beiträge des Benutzers
Blacal
myCSharp.de - Member



Dabei seit:
Beiträge: 392

beantworten | zitieren | melden

Hi,

mit was ließt du denn die CSV-Datei ein? Mit Excel?

Im CSV-Format trennt man normalerweise mit ";" und nicht mit ",", eventuell ist ja das schon das Problem.

Gruß
Roland
private Nachricht | Beiträge des Benutzers
Rabban
myCSharp.de - Member

Avatar #avatar-3383.jpg


Dabei seit:
Beiträge: 112
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Manda,

bei arbeiten mit CSV Dateien kann ich dir nur FileHelpers ans Herz legen. Ich weiß zwar nicht was für Daten du in der CSV speichern willst. Aber wenn du versuchst die CSV Datei wieder ein zu lesen, wirst du ansonsten wahrscheinlich sehr schnell auf probleme stoßen wenn einzelne Felder Zeilenumbrüche beeinhalten.

Mfg
Rabban
private Nachricht | Beiträge des Benutzers
CoLo
myCSharp.de - Member



Dabei seit:
Beiträge: 232

beantworten | zitieren | melden

Hi Manda,

Dein Problem liegt wohl wo anders, denn Dein Code sieht soweit gut aus. Siehe Test:


        private void Test()
        {
            string[] columns = new string[] { "Hallo", "Welt", "123" };
            int iCol = columns.Length;

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < iCol; i++)
            {
                sb.Append(columns[i]);

                if (i < iCol - 1)
                {
                    sb.Append(","); //Sieht gut aus
                }
            }
            MessageBox.Show(sb.ToString());// "Hallo,Welt,123"
        }

Zeige mal die Cloumns-Werte und Dein Ergebnis (Bzw. Teil davon).
Gruß, CoLo
private Nachricht | Beiträge des Benutzers