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 :

Supprimer le double backslash dans les résultats SQL


Sujet :

C#

  1. #1
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut Supprimer le double backslash dans les résultats SQL
    Hello,

    J'ai une base de données dans laquelle je vais chercher des messages à afficher dans mon application. Lorsque j'insers des "\n" dans la base, la requête SQL me donne en résultat un "\\n". J'aimerais supprimer cet ajout automatique du double backslash. Est-ce possible?

  2. #2
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Tu peux peut être contourner le problème en effectuant un Replace "\\n" par Environment.Newline ?
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  3. #3
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Oui j'y ai pensé, mais je voulais savoir si il y avait un moyen de supprimer cette fonctionnalité. Ce serait plus efficace de ne pas doubler les backslashes plutôt que ce que le framewotk les ajoute puis que je les supprimes...

    C'est la solution de rechange...

  4. #4
    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
    je ne suis pas sur d'avoir compris, c'est un objet .net qui te construit une string avec des "\\n" et non des "\n" ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Dans ma base de données, j'entre : "blablabla\nblabla"

    Comme ça j'espère avoir mon texte sur deux lignes dans l'application. Seulement quand je récupère le résultat de la requête dans mon DataReader, je trouve la valeur : "blablabla\\nblabla".

    Je pense que c'est le framework qui me fait cette modification automatiquement... J'aimerais désactiver la création de ce double backslash...

  6. #6
    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
    C'est bizzare le framework en général fait plutot la modification suivante @"dgdfgfd\dsgvfdfsdf".
    Dans tous les cas, il est obligé de faire une modification car \ est un caractere d'echapement.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  7. #7
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Ok donc le plus simple c'est que je modifie mon string retourné. Je pense qu'il n'y a pas d'autre solution... Merci de l'aide!

  8. #8
    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
    Heu... pas sur :
    Lorsque tu affecte une valeur à string tu fait un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string t = "grgegfdg\\fdgfdgdfg\\gfdghgdf";
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string t = @"grgegfdg\fdgfdgdfg\gfdghgdf";
    Si tu copies la valeur de ce string dans un fichier (ou si tu l'affiche à l'écran), c# écrit dans le fichier : grgegfdg\fdgfdgdfg\gfdghgdf .

    Est ce que cela répond à ta question ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  9. #9
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Non, en fait j'aimerais que le backslash ne soit pas ajouté. Si je met :

    mon\ntexte dans la base, je voudrais qu'il soit affiché :

    "mon
    texte"

    Par contre je suis nouveau dans C# et je ne sais pas si le @"texte" pourrais m'aider...

  10. #10
    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
    tu as deux formes d'écriture pour les strings :
    ou
    C# utilise \ comme caractère d'échapement, exemple tu affecté à ta var la valeur "toto" avec les guillemets, il faut faire :
    "\"toto\"" -> "toto" à l'affichage.

    Du coup pour enregistrer un path dans une variable string c'est galère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string toto = "c:\\temp\\toto\\titi\\..."
    Donc C# propose de faciliter les choses avec @. Si tu le met devant ta chaine de caractères lors de l'affectation d'un variable string, le compilateur ne considérera plus les \ de ta chaine comme des caractères d'echappement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string toto = @"c:\temp\toto\titi\..."
    C'est deux code te donnerons à l'affichage : c:\temp\toto\titi\...

    Si cela peut t'aider .
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  11. #11
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Ok merci. Ca ne m'aide pas pour mon problème mais c'est bon à savoir... Je vais coder exactement le code inverse de @string. Merci pour les infos

  12. #12
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut.

    C'est très simple à faire .

    dans ton résultat de requete tu fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string resultat = "blablabla\\nblablalba";
     
    resultat = resultat.Replace(@"\\n", @"\n");
    et ça roule

    et au passage c'est pas le Fx dotnet mais Sql Server qui fait ça
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  13. #13
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par dev01 Voir le message
    au passage c'est pas le Fx dotnet mais Sql Server qui fait ça
    Ok donc pas d'autre possibilité que le Replace, merci à tous!

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

Discussions similaires

  1. [PDO] SQLite - double quotes échappées dans les résultats
    Par chatlumo dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 25/05/2012, 01h01
  2. Les doubles quotes dans les fprintf
    Par Changedman dans le forum C
    Réponses: 30
    Dernier message: 22/02/2007, 12h07
  3. Réponses: 4
    Dernier message: 12/11/2006, 18h49
  4. Aberration dans les résultat d'un SELECT
    Par tpatrice2003 dans le forum Oracle
    Réponses: 1
    Dernier message: 13/06/2006, 09h43
  5. Requête SELECT problème dans les résultats trouvés ...
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/10/2005, 12h46

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