C# - 我应该如何将datagridview组合框添加到datatable并在datagridview中预览?

时间:2016-06-20 06:06:16

标签: c# datagridview combobox

对不起,如果这是一个愚蠢的问题。我是新手。我应该如何将组合框添加到datatable,然后将其加载到datagridview中?可以这样做吗?这是最好的方法吗?有关如何执行此操作的提示和教程非常感谢。先感谢您。

                string[] columnNames = dataTable.Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray();
                DataTable dt = new DataTable();
                dt.Columns.Add("ColA");
                dt.Columns.Add("ColB");
                dt.Columns.Add("ColC");

                for (int i = 0; i < columnNames.Count(); i++)
                {
                    dt.Rows.Add();

                    dt.Rows[i][0] = columnNames[i].ToString();

                    //datatype
                    string sqlAllTables = "SELECT A, B FROM TB_LOOKUP";
                    DataSet ds;
                    ds = databaseManager.GetData(sqlAllTables);

                    DataGridViewComboBoxCell combo = new DataGridViewComboBoxCell();
                    combo.DataSource = ds.Tables[0];
                    combo.DisplayMember = "A";
                    combo.ValueMember = "B";
                    dt.Rows[i][1] = combo;

                }

                dataGridView1.DataSource = dt;

1 个答案:

答案 0 :(得分:2)

  

您无法将控件添加到DataTable

如果您想要显示combobox,则需要在datagridview中添加,并将组合框与数据绑定。

var column = new DataGridViewComboBoxColumn();
column.DataSource = ds.Tables[0];
column.DisplayMember = "A";
column.ValueMember = "B";
dataGridView1.Columns.Add(column);

不要添加第三列dt.Columns.Add("ColC");这将是我们在上面添加组合框的列。