Une requête qui s’exécute mal

Résolu
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014 - 6 janv. 2012 à 11:09
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014 - 9 janv. 2012 à 09:18
Bonjour,

Je souhaite exécuter une requête à partir de mon programme en VB.NET sur une base SQL SERVER.

Voici mon code :
 Dim Maconnexion As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\MABADO.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")

        Dim CmdSelectClients As New SqlCommand("SELECT idEntite FROM ENTITE E JOIN PLIEUR P ON (E.idEntite=P.idEntite)", Maconnexion)

        Dim dt As New DataTable()


        Dim daTable As New SqlDataAdapter(CmdSelectClients)


        Maconnexion.Open()

        daTable.Fill(dt)

        ListBox1.DataSource = dt



        ListBox1.DisplayMember = "idEntite"
        ListBox1.ValueMember = "idEntite"


        Maconnexion.Close()


Mais cela ne fonctionne pas, ma listbox reste vide.
Cependant, si je ne fais pas de INNER join et que je fais juste "SELECT idEntite FROM ENTITE", cela fonctionne bien.

Je pensais que mon INNER JOIN était faux donc j'ai attaqué directement la BDD avec la requête INNER, qui m'a bien renvoyé les résultats souhaités.

J'ai essayé le Pas à pas mais ça ne m'a pas aidé.

Quelqu'un saurait pourquoi ?

Merci d'avance

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 janv. 2012 à 15:29
un WHERE

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
6 janv. 2012 à 21:32
Bonjour,

Je pense que comme ça c'est équivalent

Select nom 
FROM Personne P,Homme H,Grand G
where P.nom = H.nom 
and G.nom = H.nom

et plus compréhensible pour moi

Bonne soirée



Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
3
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
6 janv. 2012 à 22:02
Je viens de tester inner join fonctionne en sql server

et si ce n'est que pour les index on peut préciser lequel utiliser dans la clause FROM

Bonne soirée



Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
3
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
6 janv. 2012 à 11:12
ps : je viens de contourner le problème en modifiant la requête "SELECT idEntite FROM ENTITE WHERE idEntite IN(SELECT idEntite From PLIEUR)"
Mais je ne comprends toujours pas pourquoi ça ne fonctionne pas avec un INNER JOIN
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 janv. 2012 à 12:27
Salut

Peut être parce que tu avais écris "JOIN" et pas "INNER JOIN"
Perso, je n'aime pas cette syntaxe et ne l'utilise jamais.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
6 janv. 2012 à 13:48
Bonjour,

Non j'avais aussi essayé avec INNER JOIN :/

C'est étrange
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 janv. 2012 à 14:26
JOIN est possible dans ce cas (équi jointure)

je n'aime pas non plus cette syntaxe.
Elle est censée accelerer les traitements en indexant la chose comme il convient.
les requetes sont maintenant optimisée et compilées... j'ignore si c'est daubes syntaxiques que sont les jointures sont toujours à préconiser.

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
6 janv. 2012 à 15:14
j'ignore si c'est daubes syntaxiques que sont les jointures sont toujours à préconiser.


Par quoi veux tu remplacer un INNER JOIN
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
6 janv. 2012 à 16:14
Mais par exemple quand tu vas chercher des infos d'une table partir d'une autre :
Select nom FROM Personne P INNER JOIN Homme H On P.nom H.nom INNER JOIN Grand G on G.nomH.nom

(je crois que c'est du SQL2)

Comment comptes tu faire ?


Est ce que ça remettrais en cause ce qu'on apprends en cours ?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 janv. 2012 à 21:43
Absolument.

Le INNER JOIN est propre à Access, pas au SQL (à ma connaissance)
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
9 janv. 2012 à 09:18
Merci pour ces précisions !
0
Rejoignez-nous