Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何向ListView添加搜索功能?_Sql Server_Vb.net_Winforms_Listview_Textbox - Fatal编程技术网

Sql server 如何向ListView添加搜索功能?

Sql server 如何向ListView添加搜索功能?,sql-server,vb.net,winforms,listview,textbox,Sql Server,Vb.net,Winforms,Listview,Textbox,我在表单上有一个文本框和一个列表视图。ListView已连接到MS SQL数据库。 我希望在文本框中写入文本,并在列表视图的某一列中搜索此文本 我将此代码添加到文本框的TextChanged事件处理程序中。 这个代码有什么问题 Private Sub WyszukajUmowyNajmow() Dim conn As SqlConnection = New SqlConnection() Dim cmd As SqlCommand = New SqlCommand() D

我在表单上有一个文本框和一个列表视图。ListView已连接到MS SQL数据库。
我希望在文本框中写入文本,并在列表视图的某一列中搜索此文本

我将此代码添加到文本框的
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\u TextChanged)中写入,然后在ListView上我看不到任何项目,但应该在那里。当窗体加载时,我看到来自MS SQL数据库的ListView项。有人知道此代码有什么问题吗?

欢迎使用Stackoverflow!请使用所需的行为、特定问题和代码更新您的问题。请参阅:“ListView已连接到MS SQL数据库”。不,不是。WinForms
ListView
甚至不支持数据绑定,更不用说直接数据库连接了。如果您正在显示数据库中的数据,那么几乎可以肯定您应该使用支持数据绑定的
DataGridView
。包括您的任何错误消息、当前程序行为/输出以及预期或期望的行为/输出。所以我必须只使用DataGridView?
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