使用第一行作为列标题的数据集,将复选框第1列下移

本文关键字:数据集 1列 标题 复选框 一行 | 更新日期: 2023-09-27 17:51:21

我有数据集,我从Excel文件填充:

            OleDbConnection conn;
            OleDbDataAdapter command;
            conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filePath + " ';Extended Properties=Excel 8.0; ");
            conn.Open();
            firstSheetName = GetFirstSheet(conn);
            command = new OleDbDataAdapter("select * from [" + firstSheetName + "]", conn);
            command.TableMappings.Add("Table", "Table");
            dtSet = new DataSet();
            command.Fill(dtSet);
            dgvInputFile.DataSource = dtSet.Tables[0];

我使用excel文件的第一行作为列标题。我正在添加复选框列:

dtSet.Tables[0].Columns.Add(new DataColumn("Some header", typeof(bool)));

但是复选框列的标题将列1行向下推,datagridview有这种格式。

Some header  |  header 1  |  header 2
--------------------------------------
checkboxcell | some value |  some value
checkboxcell | some value |  some value
checkboxcell | some value |  some value
checkboxcell <-- Unwanted checkboxcell !!!

如何添加从第二行开始的复选框列,或包含dataset.Rows.Count - 1元素?

使用第一行作为列标题的数据集,将复选框第1列下移

最后一行的意外复选框可以是DataGridView.AllowUserToAddRows属性设置为true(默认)的结果,这将为输入添加新行

try set AllowUserToAddRows to false for dgvInputFile

顺便说一下,当AllowUserToAddRows = true时,grid (dgvInputFile.RowCount)中的行数等于dataset.Rows.Count + 1