[C#] Les méthodes d’extension

Définition

Pour commencer, une rapide définition des méthodes d’extension (ou Extension Methods) :
Ce sont des méthodes qui vous permettent d’ajouter des méthodes à un type, même si vous n’avez pas le code source pour le type.

Il existe déjà des méthodes d’extension dans le Framework .NET, qui se distinguent par un logo différent sur IntelliSense : une flèche bleue pointant vers le bas.
Par exemple la méthode « First<>() » présente dans l’espace « System.Linq; » :

Exemple d’application

Afin d’illustrer comment créer notre propre méthode d’extension, créons le besoin suivant : Nous avons besoin dans notre application d’avoir une méthode qui permette de mettre la première lettre d’une chaine String en majuscule. Cette méthode devra être une méthode « étendue » de la classe String.

Continuer la lecture de [C#] Les méthodes d’extension

Partagez:

[SQL Server] Rendre des champs sensibles à la casse

Une technique découverte bien utile pour rendre des champs « case sensitive » sur une requête SQL : utiliser la clause COLLATE.
Prenons l’exemple simple d’une recherche d’un client dans une table de notre base de données :

SELECT Prenom, Nom
FROM Client
WHERE Nom = 'dupond'

On cherche ici à récupérer le nom et le prénom du client ‘dupond’, or celui-ci pourrait très bien avoir son nom enregistré en tant que ‘Dupond’ ou bien même ‘DUPOND’. Si c’est le cas, alors la clause WHERE ne trouvera pas de ‘dupond’ tout en minuscule.

Solution :

Pour rendre les requêtes sensibles à la casse et récupérer un seul enregistrement (« dupond »), la « collation » de la requête doit être modifié comme suit.

SELECT Prenom, Nom
FROM Client
WHERE Nom COLLATE Latin1_General_CS_AS = 'dupond'

La « collation » par défaut de SQL Server à l’installation SQL_Latin1_General_CP1_CI_AS n’est pas sensible à la casse.

Il est aussi possible de changer la « collation » de façon permanente sur n’importe quelle colonne :

ALTER TABLE Client
ALTER COLUMN Nom VARCHAR(20)
COLLATE Latin1_General_CS_AS

Partagez: