Con el siguiente código vamos a poder crear ficheros de texto separados por comas. El carácter separador de campo será el punto y coma (;) y en la primera fila del fichero, tendremos el nombre de las columnas del DataSet.
El método recibirá dos parámetros: el DataSet y la ruta en la que almacenará el fichero.
private void dataset_to_file_csv(DataSet ds, String path)
{
String[] texto;
texto = new String[ds.Tables[0].Rows.Count + 1];
//Rellenamos la cabecera del fichero
texto[0] = String.Empty;
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
texto[0] += ds.Tables[0].Columns[i].ColumnName + “;”;
}
//Rellenamos el detalle del fichero
String linea;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
linea = String.Empty;
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
linea += ds.Tables[0].Rows[i][j].ToString() + “;”;
}
texto[i + 1] = linea;
}
File.WriteAllLines(path + “.csv”, texto);
}
{
String[] texto;
texto = new String[ds.Tables[0].Rows.Count + 1];
//Rellenamos la cabecera del fichero
texto[0] = String.Empty;
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
texto[0] += ds.Tables[0].Columns[i].ColumnName + “;”;
}
//Rellenamos el detalle del fichero
String linea;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
linea = String.Empty;
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
linea += ds.Tables[0].Rows[i][j].ToString() + “;”;
}
texto[i + 1] = linea;
}
File.WriteAllLines(path + “.csv”, texto);
}
Funciona perfecto, gracias!