Export im csv - Linq-Abfrage
Ich habe eine Klasse, in der linq-Abfrage der db Tabelle so Aussehen, und die Frage ist:
Wie kann ich exportieren, die Daten im csv-Format? Ich habe versucht, link vorgeschlagen, und ich bin mit linq2csv und wollen immer noch wissen, wie man die Spalte durch Ihre Bestellung? danke!
var usr = from usr in db.User
select new { usr.UserName, usr.Dept, usr.Name)
MainListView.DataSource = usr;
MainListView.DataBind();
CsvFileDescription outputFileDescription = new CsvFileDescription
{
SeparatorChar = ',',
FirstLineHasColumnNames = true,
FileCultureName = "en-US"
};
CsvContext cc = new CsvContext();
string finalPath = mypath + "usr_" + DateTime.Now.ToString ( "yyyyMMddhhmmssfff" ) + ".csv";
cc.Write( usr, finalPath, outputFileDescription );
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zur Steuerung der Sortierreihenfolge müssen Sie eine Klasse definieren mit Attributen wie
Dann ändern Sie Ihre linq-Abfrage verwendet, um diese Klasse zu verwenden, z.B.
Da bist du bereits vertraut mit LINQ, ich habe Matt Perdeck ist LINQ2CSV ( http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library ) vor und es machte mir das Leben viel einfacher.
.OrderBy()
auf Ihre linq-Ausdruck.LINQtoCSV nicht erhalten Ihre Spalte um, es sei denn, Sie verwenden die [CsvColumn(FieldIndex = 1)] - Attribut auf alle Ihre Eigenschaften. Aber wer will das? Ich würde ServiceStack.Text-Bibliothek. Es bewahrt Spalte Aufträge standardmäßig. Funktioniert wie folgt:
string csv = ServiceStack.Text.CsvSerializer.SerializeToCsv<>(exportData);