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

Windows Forms Discussion :

L'ordre Select ne reconnait pas mon TextBox


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 37
    Points
    37
    Par défaut L'ordre Select ne reconnait pas mon TextBox
    Bonjour

    Débutant en c#, je n'arrive pas a comprendre pourquoi mon select ne reconnait pas mon textbox comme condition.

    Voici un bout du programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void Recherche_Click(object sender, EventArgs e)
            {
                string connectionString = null;
                connectionString = ConfigurationManager.ConnectionStrings   
               ["dbSqlServerCe"].ConnectionString;
     
                SqlCeConnection MaConn = new SqlCeConnection(connectionString);
     
                MaConn.Open();
                int i = 0;
     
                SqlCeCommand cd = new SqlCeCommand("select * from articles    
                 where code=code.Text", MaConn);
    ou code.text est une valeur que je rentre a l'execution.

    par contre si je remplace code.Text par les valeurs de ma table articles(1,2,3..),ca fonctionne et j'ai les info de la base.


    merci pour votre aide

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    Normal...

    tu écrit "code.Text"... il n'est pas cencé savoir qu'il doit évaluer cette partie de la chaine avant de faire le requetage...
    tu n'est pas dans un langage genre php ou les chaines sont évaluées... ici tu es dans un langage dont la finalité n'est pas la même et où tout ce que tu veux faire doit clairement être spécifier... le framework peut pas deviner pour toi que cette partie de la chaine est une commande à exécuter/évaluer, alors que le reste de la chaine ne doit pas l'être.

    il te faudrait écrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.Format("select * from articles  where code={0}",code.Text)
    en lieu et place de ta chaine donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCeCommand cd = new SqlCeCommand(String.Format("select * from articles  where code={0}",code.Text), MaConn);
    Cette écriture a le mérite d'etre plutot simple à comprendre... en fait il va construire ta chaine après avoir évaluer code.Text et ensuite créer ta commande SQL.

    Edit : Merci bruns pour avoir ajouté les balises code

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par cinemania Voir le message
    Normal...

    tu écrit "code.Text"... il n'est pas cencé savoir qu'il doit évaluer cette partie de la chaine avant de faire le requetage...
    tu n'est pas dans un langage genre php ou les chaines sont évaluées... ici tu es dans un langage dont la finalité n'est pas la même et où tout ce que tu veux faire doit clairement être spécifier... le framework peut pas deviner pour toi que cette partie de la chaine est une commande à exécuter/évaluer, alors que le reste de la chaine ne doit pas l'être.

    il te faudrait écrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.Format("select * from articles  where code={0}",code.Text)
    en lieu et place de ta chaine donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCeCommand cd = new SqlCeCommand(String.Format("select * from articles  where code={0}",code.Text), MaConn);
    Cette écriture a le mérite d'etre plutot simple à comprendre... en fait il va construire ta chaine après avoir évaluer code.Text et ensuite créer ta commande SQL.

    Edit : Merci bruns pour avoir ajouté les balises code
    Et les requêtes parametrées alors? :p
    http://msdn.microsoft.com/fr-fr/libr...(v=VS.80).aspx

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    Fantastique, ca marche

    merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/06/2010, 18h01
  2. Réponses: 4
    Dernier message: 27/11/2009, 14h48
  3. Eclipse ne reconnait pas mon entity
    Par alexlevenere dans le forum JPA
    Réponses: 1
    Dernier message: 15/11/2009, 20h36
  4. avast ne reconnait pas mon virus
    Par s-ehtp dans le forum Sécurité
    Réponses: 3
    Dernier message: 29/09/2008, 22h59
  5. [REDHAT] ne reconnait pas mon disque dur
    Par sfamok dans le forum RedHat / CentOS / Fedora
    Réponses: 7
    Dernier message: 31/01/2007, 23h37

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