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

ASP.NET Discussion :

problème d'ecriture de donnée


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 83
    Par défaut problème d'ecriture de donnée
    slt!
    voilà, j'utilise asp.net , et mon problème est le suivant, j'aimerais tester une donnée dans une fonction qui utilise une requête sql, le truc est que la donnée contient une apostrophe (ex=l'art) et cela provoque une erreur! ainsi, je voudrais savoir comment faire pour ignorer (') dans une donnée traitée!

  2. #2
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Salut,

    Pour échapper l'apostrophe il faut utilisé le '\'

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string req = "SELECT * FROM table1 WHERE nom = l\'extrem";
    Sur le principe c'est ça, j'ai fait le code a la volé

  3. #3
    Membre chevronné Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Par défaut
    Salut, comme toujours dans ce genre de cas il faut utiliser les requêtes paramétrées. Voir :
    http://webman.developpez.com/article...rameter/vbnet/
    http://www.microsoft.com/france/visi...6-e9852f0f828a

  4. #4
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Bonjour,

    Tu peut simplement ajouter un autre apostrophes à coté du premier, c-a-d :
    l'art devient l''art, tu peut utiliser donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine.Replace("'","''")
    A+

  5. #5
    Membre chevronné Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Par défaut
    Désolé d'insister mais encore une fois ce n'est pas du tout la bonne solution.
    C'est d'autant plus important ici car il s'agit d'une solution ASP.NET donc à priori ouverte vers l'extérieur !!

  6. #6
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Citation Envoyé par _PascalC_ Voir le message
    Salut, comme toujours dans ce genre de cas il faut utiliser les requêtes paramétrées. Voir :
    http://webman.developpez.com/article...rameter/vbnet/
    http://www.microsoft.com/france/visi...6-e9852f0f828a
    Super cool ton lien, et concernant '' , beeenh j'ai bien compris la leçon...

    A+

  7. #7
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par _PascalC_ Voir le message
    Désolé d'insister mais encore une fois ce n'est pas du tout la bonne solution.
    C'est d'autant plus important ici car il s'agit d'une solution ASP.NET donc à priori ouverte vers l'extérieur !!
    Il ne faut pas être aussi catégorique. C'est une bonne pratique c'est certain et je la recommande pour plein de raisons. Sachant cela elle est très importante lorsque l'internaute saisie des données.

    Toutefois, avec les nouvelles techno (LINQ, FW3.5) qui parlera de procédures stockées? C'est pas tous les jours facile, mais n'oubliez pas de vous renouveler dès que possible.

    Donc LINQ ?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  8. #8
    Membre chevronné Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Par défaut
    Toutefois, avec les nouvelles techno (LINQ, FW3.5) qui parlera de procédures stockées?
    ... j'ai jamais préconisé ici l'utilisation des procédures stockées (bien que c'est intéressant aussi) , j'ai juste parlé de requêtes paramétrées, nuances. Ca remet déjà nettement de chose en question dans le code du développeur

  9. #9
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Bah oui, tu as toutes les réponses qu'il te faut et même plus. A toi de choisir...
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 83
    Par défaut
    merci pour votre reponse,
    ils sont tous juste, mais j'ai une autre probleme qui est la suite de ce drenier.
    voila, j'ai un donnée dans la base ex: l'art, et j'ai un fonction qui teste si le mot en parametre ressemble à celui de la base:
    ex: appelle Searche("partition",t.Repalce("'","''"));
    avec string t="l'art";

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public bool Search(string table, string title)
            {
     
                MySqlConnection conn = new     MySqlConnection(global_joomla.connection);
                MySqlCommand cmd = new MySqlCommand();
                MySqlDataReader dr;
                conn.Open();
                try
                {
                    string req = "SELECT * FROM " + table + "  WHERE title='" + title+ "'";
                    cmd.Connection = conn;
                    cmd.CommandText = req;
                    dr = cmd.ExecuteReader();
                    return dr.Read();
     
                }
                catch (Exception e)
                {
                    throw new Exception("erreur " + e.Message);
                }
                finally { conn.Close(); }
                return false;
            }
    le truc, c'est que le fonction marche mais la reponse est toujour false car il ne peut pas egaliser : l'art et l''art or si on ne remplace pas (t.Repalce("'","''")) alors c'est le SQL qui deviens faux

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 528
    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 528
    Par défaut
    +1 pour les requêtes paramétrées.

    Voila un exemple qui montre qu'elles sont bien plus simples, même pour les débutants.

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/03/2004, 15h34
  2. [Designer] Problème de transfert de données entre modul
    Par BILLYPATOU dans le forum Designer
    Réponses: 11
    Dernier message: 09/03/2004, 18h15
  3. Problème de rafraîchissement de données...
    Par Alain Dionne dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/03/2004, 21h07
  4. [Interbase 7] Problème d'insertion de données
    Par Tuscelan dans le forum InterBase
    Réponses: 12
    Dernier message: 19/11/2003, 22h58
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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