2013-10-04 115 views
2

球員我想在vb中構建一個高效的搜索工具來從我的數據庫中搜索數據,在這裏我已經存儲了一些信息的段落。我希望搜索返回像谷歌一樣的多個結果,但在一個文本框中的相同概念的2-3段落的形式。此外,爲了使搜索更有效率,我想包括在選擇%符號的子字符串功能查詢。誰能告訴我如何實現這兩個功能?這裏是我的基本搜索代碼,它將表中存儲的單個段落返回到我的結果文本框中,我首先隱藏,然後顯示結果出現的時間。從數據庫搜索多個結果並顯示在單個文本框中

If TextBox1.Text = "" Then 
     MsgBox("Please Enter a Keyword") 
    Else 

     Dim conn As MySqlConnection 
     conn = New MySqlConnection 
     conn.ConnectionString = "Server=localhost;UserID=root;Password=admin674;Database=db1" 
     Dim myadapter As New MySqlDataAdapter 
     conn.Open() 
     Dim sqlquery = "select text from text where name like '" & TextBox1.Text & "'" 
     Dim mycommand As New MySqlCommand 
     mycommand.Connection = conn 
     mycommand.CommandText = sqlquery 
     myadapter.SelectCommand = mycommand 
     Dim mydata As MySqlDataReader 
     mydata = mycommand.ExecuteReader 
     If mydata.HasRows = 0 Then 
      MsgBox("Data Not Found") 
      TextBox1.Clear() 
      TextBox2.Clear() 

     Else 
      mydata.Read() 
      TextBox2.Text = mydata.Item("text") 
      TextBox2.Show() 


     End If 
+0

你問如何在一個文本框中顯示多個結果?這只是'txtResults.Text&= mydata.Item(「text」)'循環通過結果(多個返回的循環似乎沒有實現)。我不按照你想要的有關substring和%,對於substring – Plutonix

+0

對不起,我的意思是,我不得不鍵入確切的關鍵字來搜索數據庫,所以要消除這個問題,我需要一個查詢來搜索子字符串,使用戶不必須鍵入數據庫中存在的確切關鍵字 –

回答

1

你已經回答了一個問題,你自己 - 如何做一個字符串搜索,簡單的添加%到查詢:

Dim sqlquery = "select text from text where name like '%" & TextBox1.Text & "%'" 

(理想情況下,而不是在網上提供搜索值,你會用parametrized query ,其中包括有助於避免SQL Injection

至於第二部分 - 您已經在使用DataReader,您只需使用一個單一的mydata.Read()命令循環即可獲得所有結果。將

mydata.Read() 
TextBox2.Text = mydata.Item("text") 
TextBox2.Show() 

Dim sb as New StringBuilder() 

While mydata.Read() 
    sb.AppendLine(mydata("text")) 
End While 

TextBox2.Text = sb.ToString() 
TextBox2.Show() 

這種方法使用StringBuilder class這是連接多個字符串的有效方式。

P.S.使用後不要忘記關閉DataReader和Connection。

+0

非常感謝它現在的工作現在唯一的是我怎麼可以在這些段落之間添加空格,即他們都在排隊,所以不能區分哪一個是哪個?我是否也可以使用相同的代碼在圖片框中重新生成多個圖像?您可以提前幫助這個thankx –

+1

是的,您可以添加一個額外的空間,只需在真實的後面添加一個空的'sb.AppendLine()'命令。您可以使用類似的代碼來返回多個圖像,但由於單個圖片框只能顯示一個圖片,因此您必須動態創建圖片框,將它們添加到圖片並在圖片中填充圖片。 –

相關問題