最初の数列に 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 ファイルを作成し、列数の少ないファイルを作成しても、違いはありません。