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 et chaine avec caractere spéciaux


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 141
    Par défaut Insertion et chaine avec caractere spéciaux
    Bonjour,

    J'aimerais savoir s'il existe un moyen pour "encapsuler" la zone de texte pour qu'elle ne soit pas analyser dans la requete.

    Je m'explique j'ai une zone de texte et si je saisi des caractères comme " ou ' ca me coupe ma chaine de mon insert into.

    Il y a il donc un moyen pour que le texte renvoyé par ma zone de texte a ma requete coupe pas la chaine de celle ci

    Merci

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Utilise des paramètres SQL. Il existe un tuto sur ce site.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 141
    Par défaut
    J'ai utilisé les requetes parametrées mais si j'ajoute des " ou des ' il me donne une erreur "les chaines seront tronquées"

    Voila mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
             SqlCommand command = new SqlCommand("Insert Into Dossiers(Dossier, Dossier_Nature) Values (@Dossier, @Nature)", connection);
     
     
            command.Parameters.Add(new SqlParameter("@Dossier", SqlDbType.VarChar, 12));
            command.Parameters["@Dossier"].Value = ParamDossier.Value.ToString();
     
            command.Parameters.Add(new SqlParameter("@Nature", SqlDbType.VarChar, 20));
            command.Parameters["@Nature"].Value = Nature;
    Est ce que j'ai fait une erreur?

    Merci

  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 : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Bon perso je ne connais pas les paramètre sql, si donc tu n'y arrives pas avec eux, tu peut toujours traiter ta chaine de caractère.
    Du genre tu la récupère, tu cherche les occurences de ' ou " et tu les enlèves et tout cela grâce au méthode de string.

    Bon il doit y avir mieux, mais c'est une solution.

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Je m'explique j'ai une zone de texte et si je saisi des caractères comme " ou ' ca me coupe ma chaine de mon insert into.
    et en rajoutant \" et \' à la place de " et ' ?

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par Abac_Angelique Voir le message
    J'ai utilisé les requetes parametrées mais si j'ajoute des " ou des ' il me donne une erreur "les chaines seront tronquées"

    Voila mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
             SqlCommand command = new SqlCommand("Insert Into Dossiers(Dossier, Dossier_Nature) Values (@Dossier, @Nature)", connection);
     
     
            command.Parameters.Add(new SqlParameter("@Dossier", SqlDbType.VarChar, 12));
            command.Parameters["@Dossier"].Value = ParamDossier.Value.ToString();
     
            command.Parameters.Add(new SqlParameter("@Nature", SqlDbType.VarChar, 20));
            command.Parameters["@Nature"].Value = Nature;
    Est ce que j'ai fait une erreur?

    Merci
    Etrange car ton code semble correct pourtant....

  7. #7
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Citation Envoyé par Abac_Angelique Voir le message
    "les chaines seront tronquées"
    2 choses à vérifier :

    la taille des champs dans la base et la longeur de tes variables (ParamDossier ...) ne dépassent pas la taille des parametres sql indiqués.

  8. #8
    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 : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Je confirme : le message d'erreur "les chaines seront tronquées" correspond bien à une erreur coté base de donnée, et elle est en effet due à des chaines trop longues

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    J,ai le même problème.

    Les champs sont au format text dans mysql.

    Dès que j'entre un " ou ' ca ne fonctionne pas, mais je peux entrer une chaine très grosse tant qu'elle ne comporte pas de caractère spéciaux cela fonctionne.

    J'utiliser les requête paramêtré.

    Il n'y a pas de fonction qui ferait en sorte que dès qu'il voit un caractère spéciaux il ajout \ avant le caractère pour ainsi pouvoir faire une insertion comme il se doit. En l'effacer lors de l'affichage pour ne pas voir les \.

    http://dev.mysql.com/doc/refman/5.0/...ng-syntax.html

Discussions similaires

  1. comparaison de chaines avec caractères spéciaux
    Par battl14 dans le forum Développement
    Réponses: 0
    Dernier message: 07/04/2009, 18h35
  2. Réponses: 1
    Dernier message: 14/12/2007, 12h15
  3. comparaison de chaine avec caractères spéciaux
    Par loulag07 dans le forum Langage
    Réponses: 1
    Dernier message: 22/11/2007, 10h04
  4. Probleme Insert entiers - chaine de caracteres
    Par keub51 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/02/2007, 19h13
  5. [Regex]Match d'une regexp avec une chaîne avec caractères spéciaux
    Par gdawirs dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 12h24

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