Hallo Com
Ich möchte gerne alle Daten aus meiner DataGridView in eine CSV-Datei speichern
Wie ist dies möglich?
MFG
Ich möchte gerne alle Daten aus meiner DataGridView in eine CSV-Datei speichern
Wie ist dies möglich?
MFG
StreamWriter sw = new StreamWriter(Server.MapPath("~/Grid.csv"), false);
DataTable dt = ((DataSet)grid1.DataSource).Tables[0];
int iColCount = dt.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write(dt.Columns[i]);
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(dr[i].ToString());
}
if (i < iColCount - 1)
{
sw.Write(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator);
}
}
sw.Write(sw.NewLine);
}
sw.Close();
Bei mir erfolgt in der 2 Zeile eine NullReferenceExceptionQuote:
Der Code ist nicht von mir und ungetestet, sollte aber gehen.Code:StreamWriter sw = new StreamWriter(Server.MapPath("~/Grid.csv"), false); DataTable dt = ((DataSet)grid1.DataSource).Tables[0]; int iColCount = dt.Columns.Count; for (int i = 0; i < iColCount; i++) { sw.Write(dt.Columns[i]); if (i < iColCount - 1) { sw.Write(","); } } sw.Write(sw.NewLine); foreach (DataRow dr in dt.Rows) { for (int i = 0; i < iColCount; i++) { if (!Convert.IsDBNull(dr[i])) { sw.Write(dr[i].ToString()); } if (i < iColCount - 1) { sw.Write(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator); } } sw.Write(sw.NewLine); } sw.Close();
Dim fs As New FileStream("Schülerliste.csv", FileMode.Create)
Dim sw As New StreamWriter(fs)
For Each item In namensliste.Items
item &= ";"
sw.Write(item)
Next
sw.Close()
Quote:
Der Code ist nicht von mir und ungetestet, sollte aber gehen.Code:StreamWriter sw = new StreamWriter(Server.MapPath("~/Grid.csv"), false); DataTable dt = ((DataSet)grid1.DataSource).Tables[0]; int iColCount = dt.Columns.Count; for (int i = 0; i < iColCount; i++) { sw.Write(dt.Columns[i]); if (i < iColCount - 1) { sw.Write(","); } } sw.Write(sw.NewLine); foreach (DataRow dr in dt.Rows) { for (int i = 0; i < iColCount; i++) { if (!Convert.IsDBNull(dr[i])) { sw.Write(dr[i].ToString()); } if (i < iColCount - 1) { sw.Write(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator); } } sw.Write(sw.NewLine); } sw.Close();
Oder er übersetzt meinen Code in C#.Quote:
Der Code setzt vorraus, dass der Anwender ein DataSet verwendet.(Was er offensichtlich nicht tut)
Man kann aber auch wirklich simpel und einfach einen StreamWriter verwenden und dann einfach mit For Each die Zeilen des Grids durchgehen und nach jeder gelesenen Zeile eine Textzeile schreiben.
Ich könnte natürlich jetzt für dich googeln wie die Syntax aussieht, aber ehrlich? Dafür bin ich zu faul :).
Genug Anregungen kriegst der Threadersteller aber eigentlich trotzdem in deinem Beispiel :).
Dim Zeile As String
Dim sw As New StreamWriter("testdatei.csv", False, System.Text.Encoding.Default)
For Each row As DataGridViewRow In DataGridView.Rows
Zeile = ""
For Each cell As DataGridViewCell In row
Zeile &= cell.Value.ToString() & ";"
Next
sw.WriteLine(Zeile)
Next
sw.Close()