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

C# Discussion :

[2.0]Error bizarre lors d'une selection sur un datatable.


Sujet :

C#

  1. #1
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut [2.0]Error bizarre lors d'une selection sur un datatable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    try
    {
       string name = "#*A";
       string expr = "Name like '" + name  + "'";
       DataRow[] drList = myDataTable.Select(expr);
    }
    Catch(Exception ex)
    {
        string message = ex.Message;
    }
    Je vous ai mis le code qui pose probleme.

    si name comprend #* pas de probleme , si il comprend *#A pas de probleme .
    par contre #*(et quelque chose apres) alors il y a probleme.

    l'error que j'obtiens est :
    Error in Like operator: the string pattern '#*A' is invalid

    ps: j'ai verifier du cote de sql si la syntaxe passe sur un simple query et pas de probleme.

    donc ca vient apperement de ado.net .

  2. #2
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Bonjour,
    Si tu ajoutes @ devant tes strings?
    style :

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par dahtah Voir le message
    Bonjour,
    Si tu ajoutes @ devant tes strings?
    style :
    Totalement inutile. Le @ est une directive d'interprétation de constantes chaines pour le compilateur et n'a rigoureusement aucune influence sur l'exécution de l'opérateur like par le SGBD.

    A part cela, quel est le SGBD utilisé ici ? car le probléme n'est visiblment pas un problème de framework ni de langage de programmation mais un problème SQL.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    A part cela, quel est le SGBD utilisé ici ? car le probléme n'est visiblment pas un problème de framework ni de langage de programmation mais un problème SQL.
    Et bien justement le probleme vient du framework.

    J'ai precise au par avant que j'avais verifie la requete sur sql server et pas de probleme.

    Si tu vois mon example la requete se fait sur une datatable et non sur une base de donne (sql server , orcle ou autre ).

    donc je pense vraiment que ca vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataTable.Select("Name like '#*A'");
    qui apperement n'apprecie pas la suite "#*...";

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Désolé, j'ai lu trop vite. Honte à moi

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bon, j'ai ta réponse : (pour me racheter d'avoir écrit une connerie, j'ai cherché )

    "A wildcard is allowed at the start and at the end of the pattern, or at the end of the pattern, or at the start of the pattern"

    Mais visiblement pas au milieu :

    "Wildcard characters are not allowed in the middle of the string"

    Donc "l'erreur est juste"

    Je ne doute pas que cela ne t'arrange pas, mais il semble que le comportement soit on ne peut plus normal. (je maintiens que ceux qui ont codé cela ne se sont pas beaucoup cassé le c*l - avec wildcard au milieu).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    bah va donc falloir supprimer # ou A et à l'arriver faire un nouveau traitement sur le résultat
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  8. #8
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    super merci les gars

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Ta solution est simple : tu fais Select sur Select.

    Tu crées une table intermédiaire avec les rows retournées par
    "#*"
    puis tu appliques sur cette table un nouveau Select avec comme argument "*A" (par exemple) et le tour est joué.

    Si tu veux faire cela de manière "sioux" tu crées même une classe qui parse automatiquement ton expression et se charge de faire les select partiels si nécessaire.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  10. #10
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    Merci bluedeep pour l'aide.

  11. #11
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    J'ai poursuivi les tests un peu plus loin, et il semble que les wildcards # et ? marchent très mal. (voire pas du tout).

    Quelqu'un a-t-il noté quelque chose de similaire ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/06/2008, 15h08
  2. dropdownlist gérer événement lors d'une selection
    Par blandine555 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 25/07/2007, 19h11
  3. Problème bizarre lors d'une importation de donnée [SSIS]
    Par caballero dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2007, 16h18
  4. Réponses: 17
    Dernier message: 07/06/2007, 14h25
  5. Réponses: 11
    Dernier message: 17/07/2006, 22h08

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