对于每行有2个值的组合框的任何方式?

时间:2013-03-20 03:21:03

标签: vb.net winforms listview combobox

我正在寻找一个选项,我可以使用组合框的功能和 列表视图。

原因是因为我的SQL查询输出不能超过1,在某些情况下我可以得到。

E.g。我的SQL表看起来有点像这个

Unique_ID - Name
123456789 - Simon
987654321 - Simon

基本上,同一个名称可以在数据库中多次出现,每个条目都有自己的ID。

出于用户的考虑,我不能让他们根据ID选择要编辑的记录,而是让他们根据名称选择记录。当我的查询产生超过1条记录时,我得到一个MySQL异常。

这是有问题的MySQL查询:
"SELECT worldspace from survivor where is_dead = '0' _ and survivor.unique_id = (select unique_id from profile where name = '" & target & "')"

然后,该查询的输出将用于另一个UPDATE查询。

那么,我的组合框是否可以同时具有ID&作为值的名称,它们之间有明确的分隔,因此整个值保持良好的可读性,就像在listview元素中一样?

2 个答案:

答案 0 :(得分:3)

我发布这个作为答案,因为OP问它:

这将是一个包含多行的WPF ComboBox:

<ComboBox ItemsSource="{Binding}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding ID, StringFormat='{}ID: {0}'}"/>
                <TextBlock Text="{Binding Name, StringFormat='{}Name: {0}'}"/>
            </StackPanel>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

数据项:

public class ComboItem
{
    public int ID { get; set; }

    public string Name { get; set; }
}

结果:

enter image description here

对所有黑客僵尸来说:技术优势本身就说明了。

答案 1 :(得分:0)

解决方案实际上是一种方式,一种更容易的方式。试试这个:

For i As Integer = 0 To dataSet.Tables(0).Rows.Count - 1

ComboBox1.Items.Add(dataSet.Tables(0).Rows(i)(0) + " | " + dataSet.Tables(0).Rows(i)(1) 
+ " | " + dataSet.Tables(0).Rows(i)(2))

Next

但是您必须将其实现到您的代码和数据库中