我有一个winform应用程序,该应用程序读取csv文件并将其转换为数据表。 csv文件包含一列带有标题的列,以及多列包含实际数据的列。这是创建数据表的函数:
public DataTable CreateDataTable(char delimiter)
{
DataTable dt = new DataTable();
FileStream aFile = new FileStream("filepath_to_csv", FileMode.Open);
using (StreamReader sr = new StreamReader(aFile, System.Text.Encoding.Default))
{
//read headers...
string strLine = sr.ReadLine();
string[] strArray = strLine.Split(delimiter);
foreach (string value in strArray)
dt.Columns.Add(value.Trim());
DataRow dr = dt.NewRow();
//read data...
while (sr.Peek() > -1)
{
strLine = sr.ReadLine();
strArray = strLine.Split(delimiter);
dt.Rows.Add(strArray);
}
}
return dt;
}
这很好。现在我有一堆的csv文件,需要组合到一个单独的csv文件中。因此,我制作了一个新的csv文件,并将第一个csv文件中的所有行复制到其中(标题行+数据行)。对于彼此的csv文件,我只是将数据行复制到新的csv文件中。当我尝试读取新文件时,出现错误消息:The column 'column_name' is not contained in the datatable.
所有csv文件都具有相同的结构。当我分别阅读每个csv文件时,它工作正常。为什么会出现这些错误?