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 :

DataTable.RowFilter qui ignore les accents (case insensitive RowFilter)


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut DataTable.RowFilter qui ignore les accents (accent insensitive RowFilter)
    Bonjour,

    Est-il possible de rendre case-insensitive une DataTable ?

    Exemple, dans une table j'ai une liste de prénoms, et parmi ces prénom j'ai :
    - frédéric
    - frederic

    J'aimerais qu'en filtrant le DataTable qui contient les données, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RowFilter = " prenom like 'frederic' "
    que les lignes "frédéric" et "frederic" soient ramenées.

    Est-possible ?

    Merci !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut
    Lu,

    Cela t'aidera sûrement: Lien

  3. #3
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut
    Ma recherche est déjà insensible à la casse. Ce que je cherche, c'est de la rendre insensible aux caractères accentués.

    J'avais écrit l'intitulé un peu trop vite, c'est corrigé.

    Merci quand même !

  4. #4
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Bonjour,
    Au passage case sensitive veut dire être senssible aux majuscules-minuscules et rien d'autre.
    Tu recherches le moyen d'être insensible aux signes diacritiques.

    j'ai fait une méthode qui retire les accents et autres signes diacritiques. ce n'est pas la solution à ta question, mais tu y trouveras ton bonheur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private string RemoveDiacritics(string s)
          {
             string normalizedString = s.Normalize(NormalizationForm.FormD);
             StringBuilder stringBuilder = new StringBuilder();
     
             for(int i = 0; i < normalizedString.Length; i++)
             {
                Char c = normalizedString[i];
                if(CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
                   stringBuilder.Append(c);
             }
     
             return stringBuilder.ToString();
          }
    Si jamais tu ne devais pas trouver comment adapter, je te filerai un coup de pouce (un autre)

    cdt
    ++

  5. #5
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut
    Bonjour,

    Je viens de lire ta solution, kheironn. Je l'avais déjà trouvé (peut être sur un blog à toi, je ne sais plus) pendant mes recherches mais elle ne répond pas entièrement à mon besoin.

    J'utilise cette méthode pour supprimer ces caractères de la saisie utilisateur cependant les accents sont toujours dans la base de données : la comparaison entre "frederic" saisi par l'utilisateur et "frédéric" dans la base est toujours fausse. C'est là qu'est mon problème.

    Pour l'instant la seule solution que je vois est de sélectionner les données de la base en remplaçant les diacritiques dans la requête. Ca fonctionne mais ce n'est pas optimisé, vu le nombre de lignes à traiter.

    Merci.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Si vous voulez le faire dans la base, je serais tenté de vous dire d'ajouter un colonne à votre table contenant soit le prénom sans les accents soit une clé étrangère vers une table contenant tout les prénoms sans les accents (la seconde solution permet de réduire la taille de la base mais augmente le temps de traitement des requêtes).
    Vous remplirez cette colonne lors des insertions et des mises à jour dans la table contenant les prénoms et vous n'aurez qu'à utiliser cette colonne pour vos recherches accents-insensitive.

Discussions similaires

  1. [XL-2003] Range.Find qui ignore les accents
    Par mathieu_t dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/03/2012, 11h44
  2. Filtre de texture qui ignore les "bords"
    Par valefor dans le forum OpenGL
    Réponses: 4
    Dernier message: 05/07/2007, 14h18
  3. Ignorer les accents
    Par semri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/06/2007, 22h32
  4. Ignorer les accents dans une requête
    Par pierrot67 dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/03/2007, 12h19
  5. ignorer les accents dans une recherche
    Par nono_cap dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/03/2006, 17h30

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