将 DataGridView 的 Column 的数据插入 Combo Box

Posted

技术标签:

【中文标题】将 DataGridView 的 Column 的数据插入 Combo Box【英文标题】:Insert DataGridView's Column's data into Combo Box 【发布时间】:2014-06-18 07:18:15 【问题描述】:

我正在编写这个程序,我需要将特定列的数据存储到组合框中。数据库表中只有一列,需要在 Combo Box 中填充。

我正在尝试的代码是;

private void populateList()
    
        foreach (DataGridViewRow row in dataGridView1.Rows)
        
            cmbUserNames.Items.Add(row.Cells[2].Value.ToString());
          
    

我创建了一个 DataGridView,它在表单启动时从数据中填充自己。我已经创建了上述方法,当我在 FormLoad 事件中调用它时,当 DataGridView 加载后,它会引发异常。

我期待解决方案。谢谢!

【问题讨论】:

您实际上得到了什么异常?既然你说数据库中只有一列,为什么是 Cells[2]? 为什么必须在comboBox 中填充数据时需要DataGridView 为什么不能直接从数据库的表中加载ComboBox 亲爱的中国!我也尝试输入 [0], [1] 但它仍然引发异常。例外是“索引超出范围。必须是非负数且小于集合的大小”。表中已有一条记录。 亲爱的汗!我认为从 DataGridView 中检索数据会很“容易”。如果有任何其他方法可以将数据放入组合框中,请告诉我。谢谢! 【参考方案1】:

您可以尝试使用以下替代方法:

private void populateList()
       
    cmbUserNames.DataSource = yourDataSource;
    //In the event you need specify column to be displayed/or value add the following
    cmbUserNames.ValueMember = "ColumnToBevalue";
    cmdUserNames.DisplayMember = "ColumnToDisplay";

【讨论】:

以上是关于将 DataGridView 的 Column 的数据插入 Combo Box的主要内容,如果未能解决你的问题,请参考以下文章

按 datagridview1 column1 值搜索

如何根据单元格值在datagridview行中应用循环

DataGridView ComboBox Column:从下拉列表中选择后更改单元格值?

是否可以在datagridview中合并单元格

如何在c#中只打印datagridview中的已检查行

急!datagridview里添加了datagridviewImageColumn,想把数据库里的image列(存的是绝对路径)显示成图片