Datarow в CSV строку C#


Существует ли какая-либо форма инструкции, которая преобразует datarow в строку CSV, чтобы ее можно было записать в a .csv-файл? (с промежуточными шагами или без них)

3 4

3 ответа:

Быстрый поиск в Google обнаружил это: http://www.rcs-solutions.com/blog/2009/01/15/ConvertDataTableToCSVViaExtensionMethod.aspx

Она немного устарела. Нативного способа сделать это нет, поэтому вам придется либо перебирать datatable, используя циклические конструкции, но я бы рекомендовал использовать методы LINQ, так как это будет намного чище.

Попробуйте использовать следующий код:

StringBuilder sb = new StringBuilder(); 

var columnNames = dt.Columns.Cast<DataColumn>().Select(column =>     column.ColumnName).ToArray();
sb.AppendLine(string.Join(",", columnNames));

foreach (DataRow row in dt.Rows)
{
  var fields = row.ItemArray.Select(field => field.ToString()).ToArray();
  sb.AppendLine(string.Join(",", fields));
}

File.WriteAllText("test.csv", sb.ToString());

Я смотрел на это На днях:

В соответствии с quickstart вы можете написать код следующим образом:

[DelimitedRecord(",")]
public class Customer
{
  public int CustId;    
  public string Name;
  public decimal Balance;
}
FileHelperEngine engine = new FileHelperEngine(typeof(Customer));
Customer[] res = engine.ReadFile("FileIn.txt") as Customer[];
engine.WriteFile("FileOut.txt", res);