如何在组合框中添加数据表项?

时间:2014-06-05 23:18:42

标签: vb.net

我有一个函数可以将国家/地区列表作为数据表返回。如何将这些行值添加到组合框?

For Each row as DataRow in fooDataTable.Rows
    combobox.Items.add(row)
Next

有些怎么没有填满我的组合框上的值。数据表返回100行。每行有2列。我试图用第一列添加所有100个数据行。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

DataRow是一个对象,而对象可以添加到Combo或ListBox,在这种情况下,结果不是很有用。在.Items中存储对象时,显示.ToString函数的结果。在这种情况下,它只会显示System.Data.Datarow

最佳解决方案是LarsTech建议并使用现有数据表作为数据源。这是经济的,因为CBO没有新的东西:

ComboBox.DataSource = fooDataTable 
ComboBox.DisplayMember = "column name in DT"

另一种方法是修改你的循环:

combobox.Items.Add(row("col name").ToString)

这会将列名称中的数据添加到cbo中。如果这就像人名,你想要显示名字和姓氏:

combobox.Items.Add(String.Format("{0}, {1}", row("LastName").ToString,
                   row("FirstName").ToString))

这是类似的,除非我们在将它们添加到CBO时格式化两列的内容。

另一种方法是为每一行创建一个类对象,通过ToString覆盖返回您想要显示的内容;并将它们添加到CBO,但鉴于第一种替代方案的经济性,在这种情况下这是过度的。