michelepizzi

Ricerca In un database access e riempimento listbox

Jul 19th, 2013 (edited)
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 3.01 KB | None | 0 0
  1. 'Ricerca In un database access e riempimento listbox - Update 22/07/13
  2.  
  3. 'ListBox1 = la listbox dove caricare i risultati
  4. 'db_txt_cerca = Textbox dove viene inserita la stringa di ricerca
  5. 'db_cmb_ordina = Combobox opzionale dove ho messo per quale valore ordinare la lista (ID, Nome, Anno, ecc.)
  6. 'db_cmb_ordina2 = Combobox opzionale dove ho messo il tipo di ordinamento (Ascendente, Discendente) (ASC, DESC)
  7. 'db_cmb_tipo = Combobox opzionale dove ho messo un filtro di ricerca per un solo valore (in questo caso TIPO)
  8. 'database_file = percorso del database access
  9.  
  10.  
  11.     Private Sub db_btn_cerca_Click(sender As Object, e As EventArgs) Handles db_btn_cerca.Click
  12.  
  13.         'Svuotare la Listbox
  14.         ListBox1.Items.Clear()
  15.  
  16.         'Creare l'array con i vari nomi della ricerca
  17.         Dim cerca_string_array() As String = db_txt_cerca.Text.Split(" ")
  18.  
  19.         'Creare la stringa della ricerca da inserire nella query
  20.         Dim cerca_string As String = "Nome LIKE '%" + cerca_string_array(0) + "%'"
  21.         For i As Integer = 1 To cerca_string_array.Count - 1
  22.             cerca_string = cerca_string + " AND Nome LIKE '%" + cerca_string_array(i) + "%'"
  23.         Next
  24.  
  25.         'Creare la query
  26.         Dim queryString As String = "SELECT ID, Nome, Anno, TIPO, Lingua FROM Games WHERE " + cerca_string + " ORDER BY " + db_cmb_ordina.Text + " " + db_cmb_ordina2.Text
  27.  
  28.         'Scegliere i filtri (Opzionale)
  29.         If db_cmb_tipo.Text = "--Tutti--" Then
  30.             queryString = "SELECT ID, Nome, Anno, TIPO, Lingua FROM Games WHERE " + cerca_string + " ORDER BY " + db_cmb_ordina.Text + " " + db_cmb_ordina2.Text
  31.         Else
  32.             queryString = "SELECT ID, Nome, Anno, TIPO, Lingua FROM Games WHERE TIPO LIKE '" + db_cmb_tipo.Text + "' AND " + cerca_string + " ORDER BY " + db_cmb_ordina.Text + " " + db_cmb_ordina2.Text
  33.         End If
  34.  
  35.         'Connettersi al database: database_file
  36.         Using connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + database_file)
  37.  
  38.             'Aprire la connessione
  39.             Dim command As New OleDbCommand(queryString, connection)
  40.             connection.Open()
  41.  
  42.             'Riempire la Listbox con i risultati della query
  43.             Dim reader As OleDbDataReader = command.ExecuteReader()
  44.             While reader.Read()
  45.                 If db_cmb_ordina.Text = "ID" Then
  46.                     ListBox1.Items.Add(reader.Item("ID").ToString + " | [" + reader.Item("TIPO") + "] " + reader.Item("Nome") + " (" + reader.Item("Anno") + ") - " + reader.Item("Lingua"))
  47.                 ElseIf db_cmb_ordina.Text = "Nome" Then
  48.                     ListBox1.Items.Add(reader.Item("Nome") + " (" + reader.Item("Anno") + ") - " + " [" + reader.Item("TIPO") + "] " + reader.Item("Lingua") + " |" + reader.Item("ID").ToString)
  49.                 End If
  50.             End While
  51.             ' always call Close when done reading.
  52.             reader.Close()
  53.  
  54.             'Chiudere la connessione
  55.             connection.Close()
  56.         End Using
  57.     End Sub
Add Comment
Please, Sign In to add comment