ADO.NET et VB.NET - Utilisation de caractères joker dans requète
Bonjour,
j'ai installé VS2022, je viens de VB6.0 et j'ai plus mis le nez dans du code depuis plusieurs années.
Je suis très rouillé on va dire.
J'ai quelques notions de SQL en tête et je bute sur un truc.
Voici l'exemple de code que j'utilise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
Private Sub Btn_Rechercher_Click_1(sender As Object, e As EventArgs) Handles Btn_Rechercher.Click
'on vide le DataSet pour le charger avec
'les données de la recherche
dts.Clear()
'si la case nom est cochée alors
If Chk_Search_prenom.Checked = True Then
'création de la requête,exécution de la commande,
'remplissage du DataAdapter,du DataSet et de la DataTable
sql = "select * from Table_test where Txt_Prenom = '" & Txt_search.Text & "'"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
dta.Fill(dts, "Table_test")
dtt = dts.Tables("Table_test")
'si aucunes données existent pour ce nom alors
If Rownum > dtt.Rows.Count - 1 Then
Txt_search.Text = ""
Txt_search.Focus()
MessageBox.Show("Il n'existe aucunes données pour le prénom " & Txt_search.Text & " !", "Données inexistantes...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
End If
ElseIf Chk_Search_nom.Checked = True Then
'création de la requête,exécution de la commande,
'remplissage du DataAdapter,du DataSet et de la DataTable
'L'usgae du like au lieu du = , permet d'utiliser les caractères joker dans le recherche
sql = "select * from Table_test where Txt_Nom like '" & Txt_search.Text & "'"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
dta.Fill(dts, "Table_test")
dtt = dts.Tables("Table_test")
'si aucunes données existent pour ce nom alors
If Rownum > dtt.Rows.Count - 1 Then
Txt_search.Text = ""
Txt_search.Focus()
MessageBox.Show("Il n'existe aucunes données pour le nom " & Txt_search.Text & " !", "Données inexistantes...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
Else
'sinon afichage des données dans la Datagrid
'et les textbox
DataGridView1.DataSource = dtt
End If
MsgBox("Penser à recharger la base complète après le travail sur cette recherce (voir pour indication les numéros ID dans le label !")
Else
'aucune case n'est cochées donc
MessageBox.Show("Vous devez spécifier un critère de recherche !", "Erreur...", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub |
Je me souviens que pour utiliser des caractères joker, il fallait utiliser le mot clef "LIKE", mais ici cela ne semble pas fonctionner.
J'ai essayé avec :
sql = "select * from Table_test where Txt_Nom like ?'" & Txt_search.Text & "'"
sql = "select * from Table_test where Txt_Nom like ?'" & Txt_search.Text & "'?"
sql = "select * from Table_test where Txt_Nom like '" & Txt_search.Text & "'"
Mais j'ai des erreurs systématiquement.
Avec quelques recherches sur le net, je n'arrive pas à voir ce qui cloche dans ce code et comment dans ma table j'ai plusieurs valeurs de types :
FICHIER
FICHIERS
FICHE
FART
FILES
je souhaiterais afficher les 3 premières lignes quand je tape "FIC*" ou "FIC" dans mon champ textbox.
Je me connecte à une base de donnée Access si cela peut avoir une importance.
Merci d'avance si vous pouvez m'aider.
David