Aide sur une requette dynamique

Résolu
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 - 26 janv. 2006 à 17:40
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 - 27 janv. 2006 à 19:02
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

lijohann Messages postés 76 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 8 avril 2008 1
27 janv. 2006 à 15:03
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
3
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 3
27 janv. 2006 à 19:02
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
3
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 3
27 janv. 2006 à 18:55
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
0
Rejoignez-nous