Sql server 如何向ListView添加搜索功能?
我在表单上有一个文本框和一个列表视图。ListView已连接到MS SQL数据库。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
我希望在文本框中写入文本,并在列表视图的某一列中搜索此文本 我将此代码添加到文本框的
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