繁体   English   中英

C#-从定界字符串写入数据表

[英]C# - Write to a datatable from delimited string

我有一个像这样的字符串:

"X","Y","Z"
"X2","Y2","Z2"

即,用新行分隔的多行包含多个以逗号分隔的不同字符串值。

我如何创建一个函数将这些值输入到数据表中,如下所示:

"X" "Y" "Z"
"X2" "Y2" "Z2"

在我的字符串中有多少行和列?

这是我到目前为止的内容:

public static DataTable writeToDT(string data) //Write to datatable from string
    {
        DataTable dataTable = new DataTable();
        foreach (string header in csvHeader)
        {
            dataTable.Columns.Add(header);
        }
        using (StringReader reader = new StringReader(data))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                DataRow dataRow = dataTable.NewRow();
            }
        }
        return dataTable;
    }

其中csvheader是一个已经在我的数据中充满标题的数组。
我相信这会创建一个具有适当数量的行和列的空数据表,但是我不确定如何用我拥有的字符串数据来填充它。

提前致谢。

这样的事情应该起作用。 解析CSV是一个已解决的问题, using Microsoft.VisualBasic.FileIO;TextFieldParserusing Microsoft.VisualBasic.FileIO; 命名空间(添加对Microsoft.VisualBasic的引用)可以为您完成此操作。

public static DataTable WriteToDataTable(string data)
{
    DataTable dataTable = new DataTable();
    foreach (var header in csvHeader)
        dataTable.Columns.Add(header);

    using (var reader = new StringReader(data))
    {
        TextFieldParser csvParser = new TextFieldParser(reader) { HasFieldsEnclosedInQuotes = true, Delimiters = new string[] { "," } };

        while (!csvParser.EndOfData)
        {
            var dataTableRow = dataTable.NewRow();
            dataTableRow.ItemArray = csvParser.ReadFields();
            dataTable.Rows.Add(dataTableRow);
        }
    }
    return dataTable;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM