none
Opérateur Like plante avec le Rowfilter d'un Dataview RRS feed

Réponses

  • Bon... J'ai contourné le problème en empéchant de saisir un "%" ou un "*" au milieu d'une chaine dans le Keypress des objets concernés.

    Dommage d'être restrictif ...


    FB
    • Marqué comme réponse Alex Petrescu lundi 29 novembre 2010 12:30
    lundi 29 novembre 2010 09:04
  • Vieux bougre que je suis je vais déjà proposer la solution ci-dessus en bloquant le nombre de "%" et en empechant d'en saisir en milieu de chaine. Je trouve cette solution moins lourde.

    Sinon, j'opterai plus pour une transformation de la chaine en utilisant 2 SUBSTRING.

     'A*B' => 'SUBSTRING(champ,1,1) = 'A' and SUBSTRING(chaine,LEN(champ)-1,1) = 'B'

    A bientot

     


    FB
    lundi 29 novembre 2010 13:05

Toutes les réponses

  • Bonjour,

    Il faut écrire : "Champ LIKE 'A*B'"

    Pour plus d'informations reportez vous à la documentation de la propriété DataColumn.Expression qui utilise le même analyseur syntaxique : http://msdn.microsoft.com/fr-fr/library/system.data.datacolumn.expression(VS.80).aspx

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    dimanche 28 novembre 2010 17:49
    Modérateur
  • Excusez moi Gilles mais votre réponse est fausse. Voici une citation du lien que vous m'avez transmis :

    CARACTÈRES GÉNÉRIQUES

    Les caractères * et % peuvent être utilisés indifféremment comme caractères génériques dans une comparaison LIKE. Si la chaîne située dans une clause LIKE contient un caractère * ou %, ceux-ci doivent correspondre à des caractères d'échappement au moyen de crochets ([]). Si la clause contient des crochets, ils doivent correspondre à des caractères d'échappement au moyen de crochets (par exemple [[] ou []]). Un caractère générique est autorisé au début et/ou à la fin d'un modèle. Exemple :

    "ItemName LIKE '*product*'"

    "ItemName LIKE '*product'"

    "ItemName LIKE 'product*'"

    Les caractères génériques ne sont pas autorisés au milieu d'une chaîne. Par exemple, "te*xt" n'est pas autorisé.


    FB
    dimanche 28 novembre 2010 19:18
  • Bon... J'ai contourné le problème en empéchant de saisir un "%" ou un "*" au milieu d'une chaine dans le Keypress des objets concernés.

    Dommage d'être restrictif ...


    FB
    • Marqué comme réponse Alex Petrescu lundi 29 novembre 2010 12:30
    lundi 29 novembre 2010 09:04
  • Bonjour,

    Arf... Autant pour moi !!!!

    Pourquoi ne pas filtrer vous même votre DataTable (avec une boucle par exemple) ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    lundi 29 novembre 2010 10:21
    Modérateur
  • Vieux bougre que je suis je vais déjà proposer la solution ci-dessus en bloquant le nombre de "%" et en empechant d'en saisir en milieu de chaine. Je trouve cette solution moins lourde.

    Sinon, j'opterai plus pour une transformation de la chaine en utilisant 2 SUBSTRING.

     'A*B' => 'SUBSTRING(champ,1,1) = 'A' and SUBSTRING(chaine,LEN(champ)-1,1) = 'B'

    A bientot

     


    FB
    lundi 29 novembre 2010 13:05