从数据集导入到Combobox C#

时间:2012-09-23 11:42:49

标签: c# winforms combobox dataset

我有一个包含表格的数据集,我想将其导入到Combobox中。 所以基本上我想将每个表的每个名称导入到我的组合框中。

这适用于Winform应用程序

这是否可以手动添加每个名称?

这样做的原因是能够选择一个表以便稍后在数据网格中显示该表。

2 个答案:

答案 0 :(得分:3)

创建TableName的字典&amp;表(Dictionary<string,DataTable>)并将其绑定到ComboBox的DataSource

使用

DisplayMember(从DataSource分配DisplayMember)是ComboBox项目中显示的数据源中的项目。

ValueMemeber(从DataSource分配ValueMember)是DataSource中用作项目实际值的项目。

<强>代码

Dictionary<string, DataTable> dictionary = new Dictionary<string, DataTable>();
foreach (DataTable table in ds.Tables)
{
    dictionary.Add(table.TableName, table);
}

comboBox1.DataSource = new BindingSource(dictionary, null);
comboBox1.DisplayMember = "Key";
comboBox1.ValueMember = "Value"; 

 使用Linq查询创建Dictionary<string,DataTable>

Dictionary<string, DataTable> dictionary = ds.Tables.Cast<DataTable>().ToDictionary(x => x.TableName, t => t);

comboBox1.DataSource = new BindingSource(dictionary, null);
comboBox1.DisplayMember = "Key";
comboBox1.ValueMember = "Value"; 

此处Dictionary用作DataSource。 Dictionary有两个属性Key&amp; Value。 Key(TableName)用作DisplayMember&amp; Value(DataTable)用作ValueMember。

在comboBox上SelectedIndexChanged绑定网格DataSource

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
        dataGridView1.DataSource = comboBox1.SelectedItem;
 }

答案 1 :(得分:1)

怎么样

mycombobox.ItemSource = mydataset.Tables.Cast<DataTable>().Select(x => x.Name);

然后在每个ComboBox选择索引上更改事件

mydatagrid.ItemSource = mydataset.Tables(mycombobox.SelectedIndex);