【发布时间】:2013-03-05 07:58:10
【问题描述】:
我想用 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 文件中的列,生成与 DataGridView 列数相同的 CSV 文件,生成列数较少的文件,没有区别。
【问题讨论】:
标签: c# csv datagridview