按名称将CSV文件中的列添加到数据网格视图C#中



请告诉我如何从csv文件中按名称添加列数据至少我在寻找一个可以查找的链接,但我没有找到一个工作代码。

我想找到;开始日期";列,并将其添加到数据网格视图中。请帮我修一下代码。这是表格视图(见图)

在此处输入图像描述

期间编号 开始日期
第一次 01.07.2021
第二次 01.07.2021

下面的代码为datatable创建所有的DataGrid2列,然后检查是否有一个名为Start Date的列。如果没有,它会添加列,然后将DataGrid2行的每个元素移动到datatable,最后将数据表移动到DataGrid2中。

DataTable dtable = new DataTable();
string[] lines = System.IO.File.ReadAllLines(openFileDialog1.FileName);
if (lines.Length > 0)
{
//first line to create header
string firstLine = lines[0];
string[] headerLabels = firstLine.Split(',');
//all columns datadgrid2 push to datatable
bool IsNotExistsColumnStartDate = true;
for (int i = 0; i < DataGrid2.Columns.Count; i++)
{
string headerColumn = DataGrid2.Columns[i].HeaderText;
if (headerColumn == "Start Date")
IsNotExistsColumnStartDate = false;
dtable.Columns.Add(new DataColumn(headerColumn));
}
//add column Start Date
if (IsNotExistsColumnStartDate)
dtable.Columns.Add(new DataColumn("Start Date"));
foreach (string headerWord in headerLabels)
{
if (headerWord == "Start Date")
{
int j = 1;
foreach (DataGridViewRow row in DataGrid2.Rows)
{
string[] dataWords = lines[j].Split(',');
DataRow dr = dtable.NewRow();
for (int k = 0; k < row.Cells.Count; k++)
{
dr[k] = row.Cells[k].Value;
}
dr["Start Date"] = dataWords[j];
dtable.Rows.Add(dr);
j++;
}
}
}
}
DataGrid2.DataSource = dtable;

最新更新