我在Datagrid
视图中需要从csv文件中获取数据
显示错误
列名已经存在
请任何人都可以为我编写工作代码
完整代码:
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();
答案 0 :(得分:3)
DataTable
中的列不能使用相同的名称。
您将从文件的第一行获取列名。
因此,您尝试创建4个名为“ vr”,“ vr”,“ localhost”,“ 1521”和“ orcl.168.0.7”的列。
您不能同时将第1列和第2列(屏幕截图中的A和B)都命名为“ vr”。
您需要在CSV文件中添加一个带有唯一值的实际标题行,更改其中一个值(尽管它们看起来像数据。),或者为它们指定一个非文件本身的显式名称。