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 :

problème de requête sql avec c#


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut problème de requête sql avec c#
    Bonjour j'ai un bouton recherche qui permet de créer une requête sql en fonction des champs saisis auparavant mais le programme plante lorsque j'utilise des quotes à l'intérieur des champs saisies par exemple si je saisi

    dans le champ message l'histoire il va l'introduire comme ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select * from biblio
    where message = 'l'histoire'
    donc c'est un problème de caractères. comment je pourrais éliminer ceci

  2. #2
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    On ne le dira pas assez, il est plus sécurisant de passer par les requêtes paramétrées. Un truc du genre:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string marequete = "select * from biblio WHERE message = @MonParametre";
    maCmd.Parameters.Add(new SqlParameter("@MonParametre", SqlDbType.VarChar, 30));
    maCmd.Parameters["@MonParametre"].Value = MonTextBox.Text;
    maCmd.CommandText = marequete;
    // ouvrir ta connexion 
    MaConnexion.Open();
    myReader = maCmd.ExecuteReader(CommandBehavior.CloseConnection);
    N'oubliez pas le tag et

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut
    c'est une simple application je sais que c'est plus sécurisant

  4. #4
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par majduuus Voir le message
    c'est une simple application je sais que c'est plus sécurisant
    Que sous-entend tu par simple application? "une simple application" n'a t-il pas besoin d'avoir un minimum de sécurité? A mon avis, quel que soit le type d'applications, les bonnes pratiques de développement doivent-être adoptées.
    N'oubliez pas le tag et

  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
    Au-delà de l'aspect sécurité, c'est surtout une best practice

    Que ce soit pour une simple application ou pour une énorme application, les utiliser évite de devoir gérer bien des soucis, dont l'échappement des chaînes de caractères, le format des dates, etc...

    Donc c'est à utiliser partout, tout le temps et sans hésiter !
    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 régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut
    Et si le paramétre est vide il le prend pas en compte ? parce que je suis pas habitué à les utiliser

  7. #7
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par majduuus Voir le message
    Et si le paramétre est vide il le prend pas en compte ?
    Seuls les enregistrements correspondants au paramètre transmis à la requête seront retournés.
    Citation Envoyé par majduuus Voir le message
    parce que je suis pas habitué à les utiliser
    Bah, il y a un début à tout. Tu ne connaissais peut-être pas les requêtes paramétrées avant. Mais maintenant que t'a l'info, tu ne devras pas hésiter à t'y mettre. Ce n'est pas du tout compliqué . D'ailleurs le lien que j'avais donné dans ma première réponse serait un bon début.
    N'oubliez pas le tag et

  8. #8
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonjour,

    Certes les requêtes paramétrées sont la solution idéale, en plus de la sécurité, elles te permettent de laisser gérer le connecteur .net les problématiques de culture : exemple tu envoies la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where monChampDate = '01/02/2013'
    Si ton serveur a une culture anglaise tu auras le 2 janvier au lieu du 1 février. C'est une explication supplémentaire.

    Pour ton information, il faut doubler les quotes pour que les quotes soient interprétées en tant que tel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from biblio
    where message = 'l''histoire'
    Bon dév.
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

Discussions similaires

  1. Problème exécution requête SQL avec HSQLDB
    Par montis dans le forum JDBC
    Réponses: 1
    Dernier message: 23/03/2012, 09h37
  2. Problème de requête SQL avec Firebird ?
    Par MaTHieU_ dans le forum SQL
    Réponses: 3
    Dernier message: 18/09/2008, 09h23
  3. Réponses: 2
    Dernier message: 07/02/2008, 11h45
  4. Problème de requête SQL avec DISTINCT et COUNT ?
    Par [ZiP] dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/01/2007, 17h11
  5. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15

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