繁体   English   中英

如何将搜索功能添加到 ListView?

[英]How can I add search functionality to a ListView?

我在表单上有一个 TextBox 和一个 ListView。 ListView 连接到 MS SQL 数据库。
我想在 TextBox 中写入文本并在 ListView 的其中一列中搜索此文本。

我将此代码添加到 TextBox 的TextChanged事件处理程序中。
这段代码有什么问题?

Private Sub WyszukajUmowyNajmow()
    Dim conn As SqlConnection = New SqlConnection()
    Dim cmd As SqlCommand = New SqlCommand()
    Dim da As SqlDataAdapter = New SqlDataAdapter()
    Dim dt As DataTable = New DataTable()

    Try
        sql = "SELECT UN.NUMER_UMOWY, UN.DATA_UMOWY, RO.RODZAJ_NAJMU, CZ.WYSOKOSC_CZYNSZU_NETTO, CZ.CZYNSZ_WYRAZONY, CZ.ZAPLATA_CZYNSZU, 
              CZ.TERMIN_ZAPLATY, UN.DATA_OD, UN.DATA_DO, UN.WYSOKOSC_KAUCJI_NETTO, CHP.NR_FABRYCZNY, CHP.NR_REJESTRACYJNY 
              FROM N_UMOWY_NAJMOW AS UN
              INNER JOIN N_CZYNSZ AS CZ
              ON UN.ID_CZYNSZU = CZ.ID_CZYNSZU
              INNER JOIN N_CHARAKTERYSTYKA_POZ_POJAZDU AS CHP
              ON UN.ID_CHARAKTERYSTYKI_POJAZDU = CHP.ID_CHARAKTERYSTYKI_POJAZDU
              INNER JOIN N_RODZAJ_NAJMU AS RO
              ON UN.ID_RODZAJU_NAJMU = RO.ID_RODZAJU_NAJMU
              WHERE CHP.NR_FABRYCZNY LIKE ' % " & TextBox.Text & " % ' "

        connection()
        command = New SqlCommand(sql, con)
        DataReader = command.ExecuteReader()
        listaUmowNajmow.Items.Clear()

        Dim x As ListViewItem

        Do While DataReader.Read = True
            x = New ListViewItem(DataReader("NUMER_UMOWY").ToString)
            x.SubItems.Add(DataReader("DATA_UMOWY"))
            x.SubItems.Add(DataReader("RODZAJ_NAJMU").ToString)
            x.SubItems.Add(DataReader("WYSOKOSC_CZYNSZU_NETTO").ToString)
            x.SubItems.Add(DataReader("CZYNSZ_WYRAZONY").ToString)
            x.SubItems.Add(DataReader("ZAPLATA_CZYNSZU").ToString)
            x.SubItems.Add(DataReader("DATA_OD"))
            x.SubItems.Add(DataReader("DATA_DO"))
            x.SubItems.Add(DataReader("TERMIN_ZAPLATY").ToString)
            x.SubItems.Add(DataReader("NR_REJESTRACYJNY").ToString)
            x.SubItems.Add(DataReader("NR_FABRYCZNY").ToString)
            x.SubItems.Add(DataReader("WYSOKOSC_KAUCJI_NETTO").ToString)
            listaUmowNajmow.Items.Add(x)
        Loop
    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        command.Dispose()
        con.Close()
    End Try
End Sub

编译此代码时我没有任何错误,但是当应用程序运行时,我想在 TextBox(事件 TextBox_TextChanged)中写入,然后在 ListView 上我看不到任何项目,但应该在那里。 当表单加载时,我在 MS SQL 数据库中的 ListView 项目上看到。 有人知道这段代码有什么问题吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM