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

ADO.NET Discussion :

Signe ' dans une requete SQL [Débutant]


Sujet :

ADO.NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut Signe ' dans une requete SQL
    Bonjour à tous, j'ai un bug sur une requette SQL que j'applique sur un DataTable du style :
    En effet ma chaine de carcactéres comprends un signe ' dans le mot : "d'implantation" comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ID_DOCUMENT = '2' AND PATH = 'D:\Plan d'implantation.dwg'
    Commente faire pour construire ma chaine pour que ma requette accepte ce signe ? Ce signe me sert déja dans ma requette pour délimiter un chemin d'accés qui peux comprendre des caratéres d'espacements.

    Merci beaucoup pour votre aide.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    La meilleure solution, c'est d'utiliser une requêtes paramétrées. L'échappement des caractères sera ainsi fait automatiquement.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Merci beaucoup DotNetMatt, je n'ai jamais utiliser les requêttes paramétrées mais il y a un début a tout, je vais regarder ça.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour,
    j'ai marqué Résolu un peu vite.
    Peux t'on utiliser les requettes paramétrées avec la méthode Select du Datatable ? Je ne souhaite pas accéder directement a ma base en utilisant la connexion mais simplement récuperer des lignes d'un DataTable qui répondent à 2 critéres.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ah non, ce sont les limites de l'exercice, le DataTable ne supporte pas les paramètres SQL (en tout cas pas que je sache)...

    Dans ce cas tu n'as pas d'autre choix que de faire l'échappement toi-même, avec un truc du genre :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var originalValue = "D:\Plan d'implantation.dwg";
    var escapedValue = originalValue.Replace("'", "''");    // On a donc comme valeur D:\Plan d''implantation.dwg
     
    dataTable.Select("TonChamp = '" + escapedValue + "'");

    Si tu dois faire ça souvent, tu peux faire une méthode d'extension sur le type string, qui te simplifiera la vie, un peu comme ça :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static string Escape(this string input)
    {
        return input.Replace("'", "''");
    }
    Ensuite tu l'appelles comme ça :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var originalValue = "D:\Plan d'implantation.dwg";
    var escapedValue = originalValue.Escape();
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Merci beaucoup DotNetMatt, c'est vraiment sympa. En plus je viens d'apprendre les méthodes d'extension .
    Je trouve que plus j'avance plus je le trouve super bien ce Framework.NET .

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

Discussions similaires

  1. utilisation du contenu d'un champ edit dans une requete sql
    Par amri2006 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/01/2006, 16h05
  2. [MySQL] Comparer des info date dans une requete SQL
    Par kaygee dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/01/2006, 21h56
  3. pb de guillemet dans une requete SQL
    Par linouline dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/12/2005, 11h38
  4. [JDBC]Caractères spéciaux dans une requete SQL
    Par frizby dans le forum JDBC
    Réponses: 2
    Dernier message: 28/11/2005, 18h01
  5. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51

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