2017-05-12 6 views
0

私のVBプログラムでリストビュー内の特定の項目をフィルタリングしたい。私のプログラムは正常に動作しますが、私は自分のVBで特定の値を表示したいだけです。例えば、txtboxに表示されている値は1.1ですが、listviewも11.11の値を表示しています。リストビューの値を1.1にするだけでいいので、この問題で助けてください。11.11vb内の特定の値をフィルタリングするリストビュー

ここに私のコードはあります:

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles txtFilter.TextChanged 
    txtFilter.Text = "" & txtiket.Text & "." & txtiket.Text & "" 
    Try 
     Newdataset("SELECT `ticket_number`, `visit_PDF`, `Pdf_ID`, `Date_Upload` FROM `pdf_vicit_table` WHERE (Pdf_ID LIKE '%" & txtFilter.Text & "%') ORDER BY Pdf_ID ASC") 
     If ds.Tables("a").Rows.Count < 0 Then 
      ListView2.Items.Clear() 
     Else 
      ListView2.Items.Clear() 
      For cnt = 0 To ds.Tables("a").Rows.Count - 1 
       With ListView2.Items.Add(ds.Tables("a").Rows(cnt).ItemArray.GetValue(0).ToString) 
        .SubItems.Add(ds.Tables("a").Rows(cnt).ItemArray.GetValue(1).ToString) 
        .SubItems.Add(ds.Tables("a").Rows(cnt).ItemArray.GetValue(2).ToString) 
        .SubItems.Add(Format(DateValue(ds.Tables("a").Rows(cnt).ItemArray.GetValue(3).ToString()), "yyyy-MM-dd")) 
       End With 
      Next 
     End If 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
End Sub 
+1

質問には無関係ですが、パラメータ化されたクエリを書く方法を実際に学習する必要があります。コードでは、悪意のあるユーザーがデータベース内のすべてのものを削除する可能性があり、悪意のあるユーザーでもアプリケーションがクラッシュする可能性があります。 – jmcilhinney

答えて

0

これは、お客様のListViewとは全く関係ありません。ここでは、データベースのクエリです:

Newdataset("SELECT `ticket_number`, `visit_PDF`, `Pdf_ID`, `Date_Upload` FROM `pdf_vicit_table` WHERE (Pdf_ID LIKE '%" & txtFilter.Text & "%') ORDER BY Pdf_ID ASC") 

あなたは、特にあなたのTextBox値はどこにでもPdf_ID中に含まれる任意のレコードを与えるためにデータベースを語っています。あなたが実際に望んでいるのは、その列が特定の値と等しいレコードだけです。そして、値のようなものが必要だと言うのではなく、それを言います。

Newdataset("SELECT `ticket_number`, `visit_PDF`, `Pdf_ID`, `Date_Upload` FROM `pdf_vicit_table` WHERE (Pdf_ID = '" & txtFilter.Text & "') ORDER BY Pdf_ID ASC") 
+0

このコードを実行しようとすると大丈夫です!ありがとうございました! – Charles

+0

お返事ありがとうございました!私のプログラムは今のように動作しています。どうもありがとうございます!この質問に答えてどうすればいいですか?ハハハ – Charles

関連する問題