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

JDBC Java Discussion :

[débutant]insérer les valeurs d'une zone de texte dans une table


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 34
    Points : 26
    Points
    26
    Par défaut [débutant]insérer les valeurs d'une zone de texte dans une table
    Salut
    Dans le bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Statement st= conn.createStatement();
    st.executeUpdate(INSERT INTO my_table VALUES(5,'my_name', 'my_age'))
    j'aimerais remplacer 'my_name' et 'my_age' par des contenues des zones de texte. Ainsi, j'ai écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Statement st= conn.createStatement();
    st.executeUpdate(INSERT INTO my_table VALUES(5, text1.getText(), text2.getText()))
    mais ça ne marche pas. J'aimerais savoir comment procéder pour reporter le contenu d'une zone de texte dans une table.

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par ashash
    Salut
    Dans le bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Statement st= conn.createStatement();
    st.executeUpdate(INSERT INTO my_table VALUES(5,'my_name', 'my_age'))
    j'aimerais remplacer 'my_name' et 'my_age' par des contenues des zones de texte. Ainsi, j'ai écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Statement st= conn.createStatement();
    st.executeUpdate(INSERT INTO my_table VALUES(5, text1.getText(), text2.getText()))
    mais ça ne marche pas. J'aimerais savoir comment procéder pour reporter le contenu d'une zone de texte dans une table.
    Il faut des guillemets autour des tes textes, c'est pour ça, donc soit tu rajoutes toi-même des guillemets et tu fais attention aux guillemets à l'intérieur du texte soit tu emploies des PreparedStatement qui vont tout faire pour toi.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 34
    Points : 26
    Points
    26
    Par défaut
    Salut,
    J'ai essayé avec le PreparedStatement, mais l'exception levée me renvoie le message:

    " [microsoft][pilote ODBC Microsoft Access] Fonction 'text1.getText()' non définie dans l'expression " .

    c'est d'ailleurs le même message qui apparaît quand j'utilise Statement.
    J'ai ensuite mis text1.getText() dans une variable de type String, mais j'obtiens le message

    "[microsoft][pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu ".

    J'ai aussi essayé la méthode des guillaumets, mais ça ne marche pas. Je pense que je n'ai peut être pas compris cette méthode. Si vous pouvez me faire un exemple , j'en serai très fier.
    Merci

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par ashash
    Salut,
    J'ai essayé avec le PreparedStatement, mais l'exception levée me renvoie le message:

    " [microsoft][pilote ODBC Microsoft Access] Fonction 'text1.getText()' non définie dans l'expression " .

    c'est d'ailleurs le même message qui apparaît quand j'utilise Statement.
    J'ai ensuite mis text1.getText() dans une variable de type String, mais j'obtiens le message

    "[microsoft][pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu ".

    J'ai aussi essayé la méthode des guillaumets, mais ça ne marche pas. Je pense que je n'ai peut être pas compris cette méthode. Si vous pouvez me faire un exemple , j'en serai très fier.
    Merci
    C'est normal, il faut concaténer tes chaînes C'est sûr qu'access va pas aimer que tu lui demande de faire un getText() Access ne veut que la valeur des getText(). En plus, j'avais pas vu, mais dans ton premier post, tu ne mets même pas de "" pour indiquer que c'est une chaîne de caractères, normalement, ca devrait même pas compiler un code pareil

    Il faut que tu fasse quelques chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    st.executeUpdate("INSERT INTO my_table VALUES(5, '" + text1.getText() + "', " + 'text2.getText() + "')")
    De plus, si tu travailles avec les preparedStatement, il faut que tu fasses quelque chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    statement.prepareStatement("INSERT INTO my_table VALUES(5,?, ?)");
    statement.setString(1, text1.getText());
    statement.setString(2, text2.getText());
    Ensuite, le PreparedStatement, va te formatter automatiquement ta requête.

  5. #5
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Points : 128
    Points
    128

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 34
    Points : 26
    Points
    26
    Par défaut
    Ouf... ça marche!! j'ai enfin compris comment il fallait utiliser le PreparedStatement. Merci à toi Wichtounet pour les précisions, et à toi e1lauren pour le lien vers l'endroit précis du FAQ traitant de la question.

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

Discussions similaires

  1. [AC-2007] Alimentation d'une zone de texte avec une zone de texte déroulante
    Par BRUNO71 dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/12/2010, 19h54
  2. Réponses: 1
    Dernier message: 18/02/2010, 11h38
  3. [E-03] Récupérer la valeur d'une zone de texte dans une feuille
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 25/03/2009, 10h57
  4. Réponses: 3
    Dernier message: 06/09/2006, 09h06
  5. [Débutant] Utilisation d'une valeur de la zone de texte dans une requête
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 13/07/2006, 10h42

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