如何将项目添加到 DataGridView ComboBoxColumn?
Posted
技术标签:
【中文标题】如何将项目添加到 DataGridView ComboBoxColumn?【英文标题】:How to add items to a DataGridView ComboBoxColumn? 【发布时间】:2013-12-10 15:37:33 【问题描述】:我在数据网格视图中填充comboxcolumn
时遇到问题。这是我的问题的简要说明。
我在 datagrid 视图中有一个名为 dgvRightsColumn
的组合列,在 SQL 中有一个名为 Rights 的表。我想用 Rights Table 中的 RightsNames 填充这个 dagaridview 组合框。
DataGridViewComboBoxColumn dgvRightsColumn = new DataGridViewComboBoxColumn();
SqlCommand fillRights = new SqlCommand("SELECT * FROM [Rights]", sqlConnection);
SqlDataReader readerRights = fillRights.ExecuteReader();
while (readerRights.Read())
dgvRightsColumn.Items.Add(Convert.ToString(readerRights["RightName"]));
readerRights.Close();
【问题讨论】:
您遇到了什么问题? 是winform吗?还是网络表单? 感谢您回复@rae1n。此代码未在组合框中添加项目。当我运行这段代码时。组合框仍为空白 @SudhakarTillapudi 它是 C# 中的一个 winform 看起来好像您使用的是没有 DataGridView 的 DataGridViewComboBoxColumn。您的组合实例已创建,然后在 GC 中消失。顺便说一句:您在寻找 ComboBox 吗?看一下数据绑定机制。它们让生活更轻松。 【参考方案1】:问题:您只是为 DataGridViewComboBoxColumn
创建对象,但没有指定要从 Gridview 考虑的实际列作为 ComboBox 的第 3 列。
解决方案:你需要cast
从DataGridview
到DataGridViewComboBoxColumn
所需的列来插入项目。
替换这个:
DataGridViewComboBoxColumn dgvRightsColumn = new DataGridViewComboBoxColumn();
有了这个:
DataGridViewComboBoxColumn dgvRightsColumn= dgvTasksRights.Columns[2] as DataGridViewComboBoxColumn;
注意:在执行sqlConnection
命令之前,您并没有打开SqlConnectoion
对象sqlConnection
。您需要打开它,如下所示:
sqlConnection.Open();
完整代码: 试试这个:
SqlCommand fillRights = new SqlCommand("SELECT * FROM [Rights]", sqlConnection);
sqlConnection.Open();
SqlDataReader readerRights = fillRights.ExecuteReader();
DataGridViewComboBoxColumn dgvRightsColumn= dgvTasksRights.Columns[2] as DataGridViewComboBoxColumn;
while (readerRights.Read())
dgvRightsColumn.Items.Add(Convert.ToString(readerRights["RightName"]));
readerRights.Close();
【讨论】:
谢谢...我弄错了。现在它正在工作。顺便说一句,我刚刚发布了遇到问题的选定代码,SqlConnection 已经打开:-p。再次感谢捆绑。 :-) @AzeemKhalid:不客气 :),我很高兴能帮到你。祝你有美好的一天。 我可以和你聊聊吗...?以上是关于如何将项目添加到 DataGridView ComboBoxColumn?的主要内容,如果未能解决你的问题,请参考以下文章