我正在寻找一个选项,我可以使用组合框的功能和 列表视图。
原因是因为我的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元素中一样?
答案 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; }
}
结果:
对所有黑客僵尸来说:技术优势本身就说明了。
答案 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
但是您必须将其实现到您的代码和数据库中