我想从一个CSV数据填充第几列文件填充从CSV
的代码我使用:
...
DataTable dataTable = (DataTable)readCsvTable(openFileDialog1.FileName);
if (dataTable != null) dataGridViewQuestions.DataSource = dataTable;
...
private DataTable readCsvTable(string filename)
{
DataTable dtDataSource = new DataTable();
try
{
string[] fileContent = File.ReadAllLines(filename);
if (fileContent.Count() > 0)
{
//Create data table columns
string[] columns = fileContent[0].Split(',');
for (int i = 0; i < columns.Count(); i++)
{
dtDataSource.Columns.Add(columns[i]);
}
//Add row data
for (int i = 1; i < fileContent.Count(); i++)
{
string[] rowData = fileContent[i].Split(',');
dtDataSource.Rows.Add(rowData);
}
}
}
catch (Exception ex) {
...
//error msgbox
...
return null;
}
return dtDataSource;
}
问题:
当AutoGenerateColumns = true - 代码生成附加列(与DataGridView中前几列相同的名称,以防由同一应用程序导出的文件)被添加到gridView并填充相应的数据。
当AutoGenerateColumns = false时 - 上面的代码将正确数量的行添加到表中,并且没有添加新列,但行是空的。
已经尝试过:
在调用由列的HeaderText CSV文件和列的控制名字列,使得CSV相同数量的DataGridView列的文件,使文件具有更少的列,无差异。