Exportieren Sie SQL-Server-Daten in CSV-Datei
Ich versuche zu exportieren Daten in eine csv-Datei von sql server. Ich habe mir für die online-Hilfe und andere support-Foren, aber ich kann nicht herausfinden, wie dies zu tun? Ich habe geschrieben das mein eigenen code, aber es funktioniert nicht - es hält nur auf beim laden... und scheitert.
Bitte helfen. Hier ist der code, den ich schrieb.
SqlConnection sqlCon = new SqlConnection("REMOVED");
string fileName = "test.csv";
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandText = "Select * from products.products";
sqlCmd.Connection = sqlCon;
sqlCon.Open();
using (var CommandText = new SqlCommand("select * from products.products"))
using (var reader = sqlCmd.ExecuteReader())
using (var outFile = File.CreateText(fileName))
{
string[] columnNames = GetColumnNames(reader).ToArray();
int numFields = columnNames.Length;
outFile.WriteLine(string.Join(",", columnNames));
if (reader.HasRows)
{
while (reader.Read())
{
string[] columnValues =
Enumerable.Range(0, numFields)
.Select(i => reader.GetValue(i).ToString())
.Select(field => string.Concat("\"", field.Replace("\"", "\"\""), "\""))
.ToArray();
outFile.WriteLine(string.Join(",", columnValues));
}
}
}
}
private IEnumerable<string> GetColumnNames(IDataReader reader)
{
foreach (DataRow row in reader.GetSchemaTable().Rows)
{
yield return (string)row["ColumnName"];
}
}
- Pflege, um uns zu sagen wie es ausfällt?
- Brauchen mehr Details... was ist der Fehler/Ausnahme?
- Sind Sie in der Lage zu entziffern, zumindest, an welcher Stelle es hängen?
- Grundlagen zuerst, geben Sie uns einige Hintergrundinformationen, damit wir besser verstehen können, die Umwelt, in der Sie arbeiten. Brauchen Sie zu tun, die nur einmal oder regelmäßig? Sind Sie gebunden, um mit C# für die, oder Sie können tools gebündelt mit
SQL Server
? - Das einzige Problem sehe ich als potenzielle gotcha ist die Datei, die Sie versuchen zu schreiben. Wo erwartest du die Datei "test.csv" zu wohnen? Vielleicht-mapping, um die Datei mit einem absoluten Pfad.
- Es gibt keine Fehlermeldung, es funktioniert einfach nicht alles tun, lädt er für 2minutes und nicht den download der csv-Datei.
- Durch den Schritt und sehen, wo es speziell hängt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für was es Wert ist, wenn Sie nur wollen, um eine Abfrage und schreibt den Inhalt irgendwo, es sieht aus wie Sie tun ein bisschen mehr Arbeit, als Sie müssen. Die Komplexität kann hinzufügen, um die Herausforderung bei der Fehlersuche.
Einem wirklich nackten Knochen, Beispiel und lese eine Abfrage und lenken Sie die Ausgabe in eine Datei könnte wie folgt Aussehen:
Während es möglicherweise nicht dramatisch kürzer ist als der code, die Sie aufgelistet, ich denke es ist einfacher und leichter zu Debuggen, out of the box. Habe ich noch nicht getestet, also kann ich nicht sicher sagen das es funktioniert, obwohl ich denke, dass es ziemlich nah.
Andere Sache, erwähnenswert... keines davon ist wahr, die CSV-Ausgabe. Sie müssen sicher sein, Sie behandeln eingebettete Kommas, return-Zeichen, etc, sollten Sie in jedem der Ausgang. Das ist einfach genug zu tun, obwohl.