我有一个函数可以将国家/地区列表作为数据表返回。如何将这些行值添加到组合框?
For Each row as DataRow in fooDataTable.Rows
combobox.Items.add(row)
Next
有些怎么没有填满我的组合框上的值。数据表返回100行。每行有2列。我试图用第一列添加所有100个数据行。任何帮助将不胜感激。
答案 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,但鉴于第一种替代方案的经济性,在这种情况下这是过度的。