私が望むのは、ほとんどの場合、再クエリではなく配列を非表示にすることです。だから私は、アダプタ、データセット、データテーブル、およびバインディングソースによって行われたデータベースからの値を持つコンボボックスとリストボックスを持っています。. SO人がコンボボックスの値を変更すると、リストがフィルタリングされます.コンボボックスにIDが含まれているとしましょう。リストビューにはそのIDを持つ行が表示されます. リストビューをオンロードすると、すべてのプロパティが表示されます。では、Requery なしでこれを行うにはどうすればよいでしょうか???? 以下に、入力リストとコンボボックスの部分があります。
ここにリンクがありますが、あまり 役に立ちませんVB.NET Listview Multiple Column Filter
Dim listcount As Integer = listview1.Columns.Count
With listview1
.Columns.Clear()
.View = View.Details
.GridLines = True
.Columns.Add("Name").Width = 70
.Columns.Add("ID").Width = 60
.Columns.Add("Number").Width = 90
End With
Try
strQuery = "Select * From Table"
DB.Connection = New SqlConnection(strConnection)
DB.Connection.Open()
' add a daaset
Adapter = New SqlDataAdapter(strQuery, DB.Connection)
ListRS = New DataSet
Adapter.Fill(ListRS)
Dim table As DataTable = ListRS.Tables(0)
bnsrc = New BindingSource
bnsrc.DataSource = ListRS.Tables(0)
combobox1.DataSource = bnsrc
combobox1.DisplayMember = "ID"
combobox1.ValueMember = "ID"
combobox1.AutoCompleteSource = AutoCompleteSource.ListItems
Listview1.Items.Clear()
DB.Connection.Close()
したがって、再クエリを実行する場合は、SQL ステートメントを変更する必要があります。
strQuery = "Select * from Table Where ID=@id"
パラメータを追加した場合、同じクエリを使用しているため、コンボボックスにどのような影響がありますか。