c# - 按名称将列从 CSV 文件添加到 datagridview C#
问题描述
请告诉我如何从 csv 文件中按名称添加列数据?至少我在寻找一个链接,但我没有找到一个有效的代码。
我想找到“开始日期”列并将其添加到 datagridview。请帮我修复代码。 这是桌子的视图(见图)
期间编号 | 开始日期 |
---|---|
第一的 | 01.07.2021 |
第二 | 01.07.2021 |
private void button6_Click(object sender, EventArgs e)
{
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(',');
foreach (string headerWord in headerLabels)
{
if (headerWord== "Start Date")
{
dtable.Columns.Add(new DataColumn(headerWord));
for (int i = 1; i < lines.Length; i++)
{
string[] dataWords = lines[i].Split(',');
DataRow dr = dtable.NewRow();
int columnIndex = DataGrid2.ColumnCount;
dr["Start Date"] =dataWords[columnIndex];
dtable.Rows.Add(dr);
}
}
}
}
DataGrid2.DataSource = dtable;
}
解决方案
以下代码为 创建所有DataGrid2
列,datatable
然后检查是否存在名为 的列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;
推荐阅读
- php - 无法在 laravel 6 中加载图像
- asp.net-mvc - Linq 加入两个存储库 Asp.Net MVC
- julia - 如何在 DiscreteCallback 中的指定时间读取相应的值?
- php - 即使安慰证明相反,也让 PHP $resquest 为空
- vba - 使用 VBA 使用 Powerquery 复制工作表 - 中断查询
- c++ - 类中的函数定义需要其他类中的相同函数:编译错误
- python - Anaconda 导航器未打开
- oracle - 显示学生 ID 和该学生在任何科目中的最低分数。给一个别名作为 minimum_mark。根据 minimum_mark 对结果进行排序
- python - Python Scrapy 从扩展修改蜘蛛
- python - 如何为 Pandas 数据帧的每一行制作直方图?