Aide sur une requette dynamique

Résolu
Signaler
Messages postés
153
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
20 août 2006
-
Messages postés
153
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
20 août 2006
-
bonjour , j'ai un petit soussi avec une requtte dynamique que j'ai creé sous vb.net2003
ca marche bien mais elle me retourne que le dernier "like"
par exemple si j'ai mis 2 ou 3 mot à retourner , elle me retourne que la resultat du 3 eme mot meme s'il y a des resultat pour le 1ere et le 2eme mot
voila le code que j'ai mis

tab = text1.Text.Split(" ")
For i As Integer = 0 To tab.Length - 1
str = " like '%" & tab(i) & "%' and "

Next
If tab.Length > 0
Then
str = str.Remove(str.Length - 4, 4)
'on enleve le " and "
End
If
str = "select titre from articles where titre " & str
Dim cmd As New SqlCommand(str, connection)
Dim reader As SqlDataReader
reader = cmd.ExecuteReader
While (reader.Read)
ListView1.Items.Add(reader.GetString(0))
End
While

merci d'avance

3 réponses

Messages postés
76
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
8 avril 2008
1
salut



le probleme est au niveau de ta boucle :

For i As Integer = 0 To tab.Length - 1
str = " like '%" & tab(i) & "%' and "

Next





tu as oublié le str et tu dois inclure "titre" dns ta boucle, ta boucle dois etre :




For i As Integer = 0 To tab.Length - 1
str = str & "titre like '%" & tab(i) & "%' and "

Next
If tab.Length > 0
Then
str = str.Remove(str.Length - 4, 4)
'on enleve le " and "


End
If
str = "select titre from articles where " & str
Messages postés
153
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
20 août 2006
3
resalut , je viens de trouvé ou est l'erreur , il fait mettre "or" au lieu de "and" et enlevé le dernier "or" avec
str = str.Remove(str.Length - 3, 3)

avec ton bout de code biensur


tab = text1.Text.Split(" ")



For i
As
Integer = 0
To
tab.Length - 1


str = str & "titre like '%" & tab(i) & "%' or "



Next



If tab.Length > 0
Then


str = str.Remove(str.Length - 3, 3)
'on enleve le " and "



End
If


str = "select titre from articles where " & str

merci beaucoup
Messages postés
153
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
20 août 2006
3
bonjour , merci bcp pour la reponse, j'ai t'as ce bout de code mais le probleme existe encore , avant quand j'ai pas mis les modification que tu m'as proposé il fais la selection juste sur le dernier mot que j'ai tapé mais mnt il me donne rien si je tape plus qu'un mot , y a d'autre solution stp ??


merci pour l'aide