C# 如何从数据表中读取列并在C中显示为复选框格式

C# 如何从数据表中读取列并在C中显示为复选框格式,c#,datagridview,C#,Datagridview,我正在开发一个C窗口应用程序。我正在尝试读取excel文件并将列名显示为复选框实体。我使用了以下代码,但无法在DataGridView中显示任何内容 using (OleDbCommand cmd = new OleDbCommand()) { using (OleDbDataAdapter oda = new OleDbDataAdapter()) { DataTable dt = new DataTable(); cmd.CommandText = "SELECT * From ["

我正在开发一个C窗口应用程序。我正在尝试读取excel文件并将列名显示为复选框实体。我使用了以下代码,但无法在DataGridView中显示任何内容

using (OleDbCommand cmd = new OleDbCommand())
 {
 using (OleDbDataAdapter oda = new OleDbDataAdapter())
 {
DataTable dt = new DataTable();
cmd.CommandText = "SELECT * From [" + sheetName + "]";
 cmd.Connection = con;
 con.Open();
oda.SelectCommand = cmd;
oda.Fill(dt);
con.Close();
 for (int i = 0; i < dt.Columns.Count;i++)
 {
 DataColumn dc = dt.Columns[i];
 CheckBox Ckb = new CheckBox();
 Ckb.Name = dc.ToString();
dataGridView1.DataSource = dt.Columns[i].ToString();
}
}
}
我希望输出结果如下所示:


谢谢

为什么要在For循环中填充数据网格

在For循环之前,您可以尝试以下操作:

DataSet ds = new DataSet();
Oda.Fill(ds, "Table");
dataGridView1.DataSource = ds.Tables["Table"];

有一个链接解释了如何向复选框列添加文本:…我想使用for循环填充DataGrid,因为列的数量不是固定的,它取决于用户导入的文件,文件可能有5列、6列或8列,列的数量不时不同。我编辑了答案。合谋的数量无关紧要。数据集将按原样存储表。SELECT*语句将获取所有表的内容。共谋和行。它正在引发错误“System.Data.OleDb.OleDbDataAdapter”不包含“Tables”的定义,并且找不到接受类型为“System.Data.OleDb.OleDbDataAdapter”的第一个参数的扩展方法“Tables”;它必须是ds.Tables[Table];我会修改我的答案。