C# 用于将datatable转换为逗号分隔值的函数
我正在从我的一个函数中获取一个datatable返回类型 但由于我必须在多行文本框中显示它,所以我需要一个函数,该函数应该能够将datatable转换为逗号分隔的值,以显示在多行文本框中C# 用于将datatable转换为逗号分隔值的函数,c#,visual-studio,winforms,function,C#,Visual Studio,Winforms,Function,我正在从我的一个函数中获取一个datatable返回类型 但由于我必须在多行文本框中显示它,所以我需要一个函数,该函数应该能够将datatable转换为逗号分隔的值,以显示在多行文本框中 有谁能给我推荐这样一个函数来满足我的需要。我刚才不得不自己写一个。我写我的是为了将其写入流(因为我正在将其保存到磁盘,但将其更改为使用System.Text.StringBuilder应该很简单(出于性能原因,我会使用它来连接字符串) publicstaticvoidtocsv(流、数据表、bool inclu
有谁能给我推荐这样一个函数来满足我的需要。我刚才不得不自己写一个。我写我的是为了将其写入流(因为我正在将其保存到磁盘,但将其更改为使用System.Text.StringBuilder应该很简单(出于性能原因,我会使用它来连接字符串)
publicstaticvoidtocsv(流、数据表、bool includecolumnheader、charvaluedelimiter、chartextqualifier、stringrowdimiter)
{
StreamWriter sw=新StreamWriter(流);
string valueFormatString=(textQualifier+“{0}”+textQualifier).Trim();
如果(包括列标题)
{
对于(int i=0;i
嗯,,
布莱恩告诉我一件事:这个问题你会问多少次?
public static void ToCsv(Stream stream, DataTable dataTable, bool includeColumnHeaders, char valueDelimiter, char textQualifier, string rowDelimiter)
{
StreamWriter sw = new StreamWriter(stream);
string valueFormatString = (textQualifier + "{0}" + textQualifier).Trim();
if (includeColumnHeaders)
{
for(int i = 0; i < dataTable.Columns.Count; i++)
{
sw.Write(String.Format(valueFormatString, dataTable.Columns[i].ColumnName.Replace(textQualifier.ToString(), textQualifier.ToString() + textQualifier.ToString())));
if (i != dataTable.Columns.Count - 1)
sw.Write(valueDelimiter);
}
sw.Write(rowDelimiter);
}
for(int i = 0; i < dataTable.Rows.Count; i++)
{
for (int j = 0; j < dataTable.Rows[i].ItemArray.Length; j++)
{
sw.Write(String.Format(valueFormatString, dataTable.Rows[i][j].ToString().Replace(textQualifier.ToString(), textQualifier.ToString() + textQualifier.ToString())));
if(j != dataTable.Rows[i].ItemArray.Length - 1)
sw.Write(valueDelimiter);
}
sw.Write(rowDelimiter);
}
sw.Flush();
}