投稿者 魔界の仮面弁士  (社会人) 投稿日時 2018/5/24 12:49:01
> ComboBoxには「ID」などを入れていてItemではなくそのままIDとすれば検索されます。

ComboBox で「入力されているテキスト値」を取得する場合は
 Dim s As String = ComboBox1.Text
です。これは通常、DropDownStyle が DropDown な ComboBox の場合に使います。

ComboBox の DropDownStyle が DropDownList の場合は、
「選択された項目名」を取得するために
 Dim s As String = ComboBox1.GetItemText(ComboBox1.SelectedItem)
のようにします。
http://7ujm.net/VB/ComboBox.html


ComboBox1.Items(n) の中にあるデータが String 型のデータと分かっている場合は、
 Dim s2 As String = CStr(ComboBox1.SelectedItem)
などでも構いませんが、ValueMember プロパティを設定している場合などは、
GetItemText メソッドを通じて取得するようにします。


> ですがComboBoxのものを使いたくて、何か間違ってるでしょうか? 

下記の違いは分かりますよね。
Label1.Text = ComboBox1.GetItemText(ComboBox1.SelectedItem)
Label2.Text = "ComboBox1.GetItemText(ComboBox1.SelectedItem)"
'下記は VB2015 以降限定 
'Label3.Text = $"{ComboBox1.SelectedItem}" 
'Label4.Text = $"{ComboBox1.GetItemText(ComboBox1.SelectedItem)}" 


ということは、下記も別物になるわけで。
Dim adapter1 As New SqlDataAdapter("SELECT [ID], [所在], [種類] FROM [Table] WHERE Item Like N'%" & TextBox1.Text & "%'", cnn)
Dim adapter2 As New SqlDataAdapter("SELECT [ID], [所在], [種類] FROM [Table] WHERE ID Like N'%" & TextBox1.Text & "%'", cnn)
Dim adapter3 As New SqlDataAdapter("SELECT [ID], [所在], [種類] FROM [Table] WHERE " & ComboBox1.GetItemText(ComboBox1.SelectedItem) & " Like N'%" & TextBox1.Text & "%'", cnn)


なお実際は、TextBox1 に "%" や _" が含まれていた場合のエスケープ処理も必要です。
https://sakapon.wordpress.com/2010/06/21/sqlserverlike/