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
是一个已经用我的数据中的 headers 填充的数组。
我相信这会创建一个包含适当数量的行和列的空数据表,但我不确定如何用我拥有的字符串数据填充它。
提前致谢。
像这样的东西应该有用。解析 CSV 是一个已解决的问题,using Microsoft.VisualBasic.FileIO;
命名空间中的 TextFieldParser
class(添加对 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;
}
我有一个像这样的字符串:
"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
是一个已经用我的数据中的 headers 填充的数组。
我相信这会创建一个包含适当数量的行和列的空数据表,但我不确定如何用我拥有的字符串数据填充它。
提前致谢。
像这样的东西应该有用。解析 CSV 是一个已解决的问题,using Microsoft.VisualBasic.FileIO;
命名空间中的 TextFieldParser
class(添加对 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;
}