如何根据SQL结果显示选择选项 - VB.net

时间:2015-12-02 09:57:02

标签: c# sql wpf vb.net

我这里有一些示例数据...... Sample Data to query

SQL如下;

 "Select Person, Travel, WithWho FROM database
       where (Person like '" & txtSearch.Text & "' 
       or Travel like '" & txtSearch.Text & "'
       or WithWho like '" & txtSearch.Text & "')"

我正在列表框中显示旅行方式。 我在文本框中显示 WithWho 字段,这就是问题所在。它使用SARAH填充文本框,这是数据库中的第一条记录并忽略 JOANNE 。这是在WPF应用程序中。我想知道有没有人知道如何提供一个选项来选择要加载的记录,甚至搜索表单上的记录。

感谢您的帮助

Sample code to display WithWho in textbox

1 个答案:

答案 0 :(得分:0)

您发布的代码只会在TextBox中显示一个名称,因为它会重置Text属性的整个值,而不是连接其他名称。您可以使用以下方法解决此问题:

txtPname.Text = ""
While reader.Read()
    countvalues += 1
    If reader("WithWho") Is DBNull.Value Then
        txtPname.Text &= Environment.NewLine & "Unknown"
    Else
        txtPname.Text &= Environment.NewLine & reader("WithWho")
    End If
End While

这些结果仍然不符合我的想法,但如果您在TextBox路线上设置,那么它就是一个开始。但是,从你的评论中,我相信你真正想要的是一个ListBox,如下所示填充:

lstPname.Items.Clear()
While reader.Read()
    Dim pName As String
    If reader("WithWho") Is DBNull.Value Then
        pName = "Unknown"
    Else
        pName = reader("WithWho")
    End If
    If Not lstPname.Items.Contains(pName) Then
        lstPname.Items.Add(pName)
    End If
End While

这将为用户提供一个框,其中每个名称(包括"未知",如果适用)将恰好出现一次。与TextBox不同,他们可以单击名称,其行将立即突出显示。然后,您可以对其他控件进行编码以响应lstPname.SelectedIndexChanged事件,以确定选择了哪个人并显示相应的信息。