列名称已经存在csv C#应用程序

时间:2019-05-01 15:24:23

标签: c#

我在Datagrid视图中需要从csv文件中获取数据

CSV文件图像: enter image description here

显示错误

  

列名已经存在

请任何人都可以为我编写工作代码

完整代码:

Form form1 = new Form();
DataGridView dataGridView1 = new DataGridView();
dataGridView1.Dock = DockStyle.Fill;

//Read the data from text file
string[] textData = System.IO.File.ReadAllLines("C:\\Users\\vikas\\Desktop\\fetch.csv");
string[] headers = textData[0].Split(',');

//Create and populate DataTable
DataTable dataTable1 = new DataTable();
foreach (string header in headers)
dataTable1.Columns.Add(header, typeof(string), null);
for (int i = 1; i < textData.Length; i++)
dataTable1.Rows.Add(textData[i].Split(','));

//Set the DataSource of DataGridView to the DataTable
dataGridView1.DataSource = dataTable1;
form1.Controls.Add(dataGridView1);
form1.ShowDialog();

1 个答案:

答案 0 :(得分:3)

DataTable中的列不能使用相同的名称。
您将从文件的第一行获取列名。
因此,您尝试创建4个名为“ vr”,“ vr”,“ localhost”,“ 1521”和“ orcl.168.0.7”的列。

您不能同时将第1列和第2列(屏幕截图中的A和B)都命名为“ vr”。
您需要在CSV文件中添加一个带有唯一值的实际标题行,更改其中一个值(尽管它们看起来像数据。),或者为它们指定一个非文件本身的显式名称。