IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linq Discussion :

requete avec un where inexistant


Sujet :

Linq

  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut requete avec un where inexistant
    Bonjour,

    Je fais une requete du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var tabPanels = (from Control c in TabContainerRegion.Controls where c.ID.StartsWith("TabPanelInit") orderby c.ID descending select c).OfType<TabPanel>();
    Malheureusement les tabs commencant par "TabPanelInit" ne sont pas forcement presentes. Par consequent j'ai une erreur qui se leve !!!!

    Comment puis je contourner ca ?

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par topolino Voir le message
    Malheureusement les tabs commencant par "TabPanelInit" ne sont pas forcement presentes. Par consequent j'ai une erreur qui se leve !!!!
    Quelle erreur ? Normalement le fait que le résultat de la requête soit vide ne devrait pas poser de problème... comment utilises-tu le résultat ?

    Citation Envoyé par topolino Voir le message
    Comment puis je contourner ca ?
    Ben ça dépend de ce que tu cherches à faire, et de la réponse à mes questions ci-dessus

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 23
    Par défaut
    Ben très basiquement un bloc try catch devrait faire l'affaire.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par tom572007 Voir le message
    Ben très basiquement un bloc try catch devrait faire l'affaire.
    Un try/catch, c'est pour intercepter une exception. Et une exception, par définition, c'est quelque chose d'exceptionnel et non prévisible... Ca ne sert à rien d'intercepter une exception si tu peux éviter qu'elle se produise. La gestion d'exception a un impact non négligeable sur les performances...

    Bref, il faut intervenir à la source du problème, et non masquer les symptômes en interceptant l'exception... donc tant qu'on a pas plus de détails sur le problème, on ne peut certainement pas supposer qu'un bloc try/catch est la solution

  5. #5
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Le probleme se situe au niveau de : c.ID.StartsWith("TabPanelInit")
    il me dit qu'il n y a pas de TabPanelInit.

    Si j'en ajoute un, alors tous va bien

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par topolino Voir le message
    Le probleme se situe au niveau de : c.ID.StartsWith("TabPanelInit")
    il me dit qu'il n y a pas de TabPanelInit.

    Si j'en ajoute un, alors tous va bien
    Je comprends pas le problème... si la chaine ne commence pas par "TabPanelInit", StartsWith renvoie false, et le contrôle ne passe pas le filtre du Where. Je ne vois pas en quoi c'est une erreur...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 7
    Par défaut
    Idem, aucune raison que ce code lève une erreur. Ton exception ne serait t-elle pas levée ensuite dans la suite du code ?
    Tu penses bien à jouer un Count != 0 sur la collection retournée avant de travailler avec ?
    Autre chose : puisque les types manipulés sont connus, sers t'en explicitement plutôt qu'utiliser var.

  8. #8
    Membre actif
    Profil pro
    Développeur
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Par défaut
    Ici le mot clé var de C#, n'est en rien un type anonyme,c'est juste un raccourcit de frappe et rien de plus.

    si tu tapes

    et que dans visual studio, tu positionne le curseur sur le var, il te précise bien que c'est un System.Single (float).


    topolino, si tu enlève ta condition where et que tu rejoue le cas ou ça bloque.
    Le bug disparait?

    Normalement, si aucun ne réponds à tes critères, tu te retrouves avec une collection vide.

Discussions similaires

  1. requete SQL clause WHERE avec variable
    Par gabule dans le forum JDBC
    Réponses: 6
    Dernier message: 09/01/2019, 11h04
  2. requete avec un "WHERE .. . IN" trop lourd
    Par Phiss dans le forum Requêtes
    Réponses: 14
    Dernier message: 19/02/2013, 17h26
  3. Requete avec condition where sur minute du timestamp
    Par mikael2235 dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/03/2012, 22h54
  4. Requete avec clause where dynamique
    Par shyangel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/05/2011, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo