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 :

insertion un texte avec un côte sur la base de donnée


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2015
    Messages : 107
    Par défaut insertion un texte avec un côte sur la base de donnée
    bonjour,je crée une requête d'insertion la base de donnée mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into CLIENT (nom)  values('"+texte_nom.text+"')";
    mais au cours de test d'insertion je mais ce nom "M'hamed" il m'affiche une erreur qui signifié que le cote (M'H) pose une problème. y-a t'il une solution qui permet d'inseré ce nom sans posé cette erreur?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Par défaut
    Bonjour,

    La bonne solution est l'utilisation des requêtes paramétrées.
    La mauvaise, je ne te la donne pas .

    Fais des recherches sur les requêtes paramétrées, il y a des exemples et tutos un peu partout, et si tu ne comprend pas, reviens nous voir.

    Bonne continuation.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 49
    Par défaut
    Oui des requête paramétrées c'est mieux , après si c'est pour générer un fichier SQL d'import adieux les requêtes paramétrées, tu peut les doubler sa marche sous PostgreSQL et Oracle , les autres je ne sais pas (mais comme dit Kyroon c'est pas une bonne solution si la requête est exécuter dans l'application) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into CLIENT (nom)  values('"+texte_nom.text.Replace("'","''")+"')";

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par ammar.dev Voir le message
    bonjour,je crée une requête d'insertion la base de donnée mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into CLIENT (nom)  values('"+texte_nom.text+"')";
    mais au cours de test d'insertion je mais ce nom "M'hamed" il m'affiche une erreur qui signifié que le cote (M'H) pose une problème. y-a t'il une solution qui permet d'inseré ce nom sans posé cette erreur?

    Petit ajout :

    Lorsque tu exécutes cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into CLIENT (nom)  values('"+texte_nom.text+"')";
    La chaine obtenu sera la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into CLIENT (nom)  values('M'hamed')";
    Le problème vient donc de l'interprétation du SGBD. Il voit un ' en trop et n'arrive donc pas à exécuter la requête. La solution est donc de doubler la quote.

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    sous oracle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "insert into CLIENT (nom)  values('M''hamed')";
    tu doubles l'apostrophe

    perso j'emploi des paramétrés ds mes requêtes

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2015
    Messages : 107
    Par défaut
    Citation Envoyé par ZenZiTone Voir le message
    Petit ajout :

    Lorsque tu exécutes cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into CLIENT (nom)  values('"+texte_nom.text+"')";
    La chaine obtenu sera la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into CLIENT (nom)  values('M'hamed')";
    Le problème vient donc de l'interprétation du SGBD. Il voit un ' en trop et n'arrive donc pas à exécuter la requête. La solution est donc de doubler la quote.
    oui c'est ça le problème et pour compliquer aussi le chose si mon utilisateur insère un autre nom avec double côte. donc comment remédier ce problème si l'utilisateur tape dans le champ de texte (jacque") ou (jachque') ?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Par défaut
    Même joueur, essaye encore ...

    Les requêtes paramétrées.

    Bonne continuation.

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par ammar.dev Voir le message
    oui c'est ça le problème et pour compliquer aussi le chose si mon utilisateur insère un autre nom avec double côte. donc comment remédier ce problème si l'utilisateur tape dans le champ de texte (jacque") ou (jachque') ?
    Comme beaucoup l'ont dit, tu utilises une requête paramétrées. Un petit exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //Requete mise a jour de la table client 
    maRequete = "INSERT INTO [article] ( [idclient],[idarticle],[prixarticle]) 
                             VALUES (@id_article, @prix_article, @nom_article)"; 
     
    //Création de la commande SQL 
    myCommand = new SqlCommand(maRequete, maConnexionSQLsrv); 
     
    //Création et décalartion des paramètres 
    myCommand.Parameters.Add(new SqlParameter("@id_article", SqlDbType.Int, 4)); 
    myCommand.Parameters.Add(new SqlParameter("@prix_article", SqlDbType.Float, 8)); 
    myCommand.Parameters.Add(new SqlParameter("@nom_article", SqlDbType.VarChar, 25));
    Tu peux trouver le tutoriel complet ici

    Le paramètre est identifié via "@". L'avantage ici, c'est qu'il comprendra correctement ta '. Pas besoin de "bidouiller" pour doubler les quotes saisies !

Discussions similaires

  1. [WD-2007] Problème de bloc de texte avec tableau insécable sur 2 pages ?
    Par PiPo123 dans le forum Word
    Réponses: 5
    Dernier message: 10/01/2012, 03h37
  2. Réponses: 3
    Dernier message: 17/04/2008, 10h04
  3. Pb d'insertion d'image avec une macro sur Excel 2007
    Par tigrou42 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2007, 00h48
  4. Problème avec les indexes sur une base de données.
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/02/2006, 09h24
  5. Problémes mémoire avec le bde sur des bases paradox
    Par Keke des Iles dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/05/2004, 16h55

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