1
即時通訊嘗試學習使用VB.net編碼,我有一個簡單的CRUD應用程序(VB.net和Sqlite),其中的數據顯示在網格框中。除了搜索數據之外,一切都可以工作。SQLite VB.net查詢
我想根據用戶在組合框中選擇的列名來搜索數據庫。
原代碼:
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
' search functions
connect()
Dim da As New SQLiteDataAdapter("SELECT * FROM tbl_biodata WHERE name like '%" & TextBox1.Text & "%'", connection)
Dim dt As New DataTable
da.Fill(dt)
DataGridView1.DataSource = dt
connection.Clone()
da.Dispose()
End Sub
原代碼的工作,但我想有一個選項基於列名進行搜索,所以我想這
修改後的代碼:
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
' search functions
connect()
Dim da As New SQLiteDataAdapter("SELECT * FROM tbl_biodata WHERE name like '%" & TextBox1.Text & "%'", connection)
Dim db As New SQLiteDataAdapter("SELECT * FROM tbl_biodata WHERE country like '%" & TextBox1.Text & "%'", connection)
Dim dt As New DataTable
If ComboBox1.SelectedValue = "name" Then
da.Fill(dt)
ElseIf ComboBox1.SelectedValue = "country" Then
db.Fill(dt)
End If
DataGridView1.DataSource = dt
connection.Clone()
da.Dispose()
End Sub
我不能得到它的工作。我知道我的主要問題是
Dim da As New SQLiteDataAdapter("SELECT * FROM tbl_biodata WHERE name like '%" & TextBox1.Text & "%'", connection)
但我沒有更多的想法如何做到這一點。任何幫助非常感謝,謝謝。
查找到參數化查詢,否則你是開放的SQL注入。 – OneFineDay
你說你不能讓它工作。這意味着發生的事情不是你期望的。這意味着你知道實際發生了什麼。我們爲什麼不知道? – jmcilhinney
如果您知道只使用一個數據適配器,爲什麼要創建兩個數據適配器?至少將數據適配器的創建放入「If ... Else」塊中,以便您只創建所需的數據。更好的情況是,您只需將選定的值直接插入到SQL代碼中,然後繼續創建一個且唯一的數據適配器。 – jmcilhinney