Ich versuche, den Inhalt einer Datentabelle an eine CSV-Datei mit Headern zu senden. Es gibt eine doppelte Frage, aber die angenommenen Antworten scheinen nur halbwegs zu funktionieren. An dieser Stelle habe ich die Antworten ohne Antwort gemischt und abgestimmt und brauche einen Punkt in die richtige Richtung.Senden Sie den Inhalt einer Datentabelle an eine CSV-Datei mit Headern
Ich kann die Spalten in die Datei einfach gut schreiben, und ich kann Daten gut, aber nicht zusammen schreiben. Auch die Daten kommen niemals in Anführungszeichen, nur durch Kommas getrennt ohne Anführungszeichen.
//This is how the FileHelpers class is built
public class ScannedFileInfo
{
//this prefix will handle the double quotes issue
//delimiters must reside between double quotes
//Must specify FieldOrder too
[FieldQuoted('"', QuoteMode.AlwaysQuoted)]
[FieldOrder(1)]
public string DA_Id;
[FieldQuoted('"', QuoteMode.AlwaysQuoted)]
[FieldOrder(2)]
public string Name;
[FieldQuoted('"', QuoteMode.AlwaysQuoted)]
[FieldOrder(3)]
public string Extension;
[FieldQuoted('"', QuoteMode.AlwaysQuoted)]
[FieldOrder(4)]
public string Fullname;
[FieldQuoted('"', QuoteMode.AlwaysQuoted)]
[FieldOrder(5)]
public string PathLength;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
[FieldOrder(6)]
public string Directory;
}
//this is how I send it to the file
public static void ImportDirectory(string result, SqlConnection myconn, SqlConnection destConn ,ListBox lbInfo, DataGridView dgView)
{
//create data table code here - works fine...
MessageBox.Show("Scan complete. Starting Import...");
//build file
var engine = new FileHelperEngine<ScannedFileInfo>();
var orders = new List<ScannedFileInfo>();
engine.HeaderText = engine.GetFileHeader();
engine.WriteFile(@"C:\DirectoryScan.csv", orders);
MessageBox.Show("You now have proper labeled columns in your file.");
//now the data import is successful but it overwrites the column info
CommonEngine.DataTableToCsv(dt, @"C:\DirectoryScan.csv", ',');
MessageBox.Show("You now have data in your file, but no columns");
}