Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于将datatable转换为逗号分隔值的函数_C#_Visual Studio_Winforms_Function - Fatal编程技术网

C# 用于将datatable转换为逗号分隔值的函数

C# 用于将datatable转换为逗号分隔值的函数,c#,visual-studio,winforms,function,C#,Visual Studio,Winforms,Function,我正在从我的一个函数中获取一个datatable返回类型 但由于我必须在多行文本框中显示它,所以我需要一个函数,该函数应该能够将datatable转换为逗号分隔的值,以显示在多行文本框中 有谁能给我推荐这样一个函数来满足我的需要。我刚才不得不自己写一个。我写我的是为了将其写入流(因为我正在将其保存到磁盘,但将其更改为使用System.Text.StringBuilder应该很简单(出于性能原因,我会使用它来连接字符串) publicstaticvoidtocsv(流、数据表、bool inclu

我正在从我的一个函数中获取一个datatable返回类型

但由于我必须在多行文本框中显示它,所以我需要一个函数,该函数应该能够将datatable转换为逗号分隔的值,以显示在多行文本框中


有谁能给我推荐这样一个函数来满足我的需要。

我刚才不得不自己写一个。我写我的是为了将其写入流(因为我正在将其保存到磁盘,但将其更改为使用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();
    }