Rquête SQL (Select From Where) avec les variables [Résolu]

Messages postés
18
Date d'inscription
vendredi 12 octobre 2007
Statut
Membre
Dernière intervention
26 mai 2010
- - Dernière réponse : cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
- 17 mai 2010 à 11:34
bonjour tout le monde,
s'il vous plait j'ai vraiment besoin d'aide

j'ai un petit problème avec une requête sql ou j'ai utilisé deux variables x et y, alors j'ai bien défini mes deux variables et aussi j'ai bien mi les conditions necessaires mais j'ai toujours le message suivant :
[Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère.

voici le code :

[b]String str1 = ev.getActionCommand();

int x = Integer.parseInt(tf2.getText());
int y = Integer.parseInt(tf3.getText());

if (str == "Valider") {

if (x<y) {

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (Exception E) {
System.err.println("Pas de pilote !");
}
try {
String url =
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/base1.mdb";
Connection conn =
DriverManager.getConnection(url,"utilisateur", "utilisateur");
Statement st1 = conn.createStatement();

String req1 = ("SELECT Numéros FROM Table1 WHERE Num>'$x' AND Num<'$y' ");
ResultSet res1 = st1.executeQuery(req1);
while (res1.next()) {
list1.add(res1.getString("Numéros"));
}
res1.close();
st1.close();
conn.close();
}
catch (SQLException E) {
System.err.println(E.getMessage());
}
}}

else {
JOptionPane jop1 = new JOptionPane();
jop1.showMessageDialog(f2,
"l'intervalle que vous avez intrduit et invalide",
"ERROR", jop1.ERROR_MESSAGE);
}
}
/b
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
82
3
Merci
Salut,

C'est quoi cette requête avec des $ ?

Apparemment tu fais du java, pas du php...

En plus, si ton champ Num est de type INT, pas besoin de quote (c'est pour délimiter les chaines de caractères pas les nombres).

D'où :
String req1 = ("SELECT Numéros FROM Table1 WHERE Num>" + x + " AND Num< " + y);

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
6
3
Merci
Hello,

c'est pas comme ça qu'il faut passer les arguments :
String req1 = "SELECT Numéros FROM Table1 WHERE Num>? AND Num<? ";
PreparedStatement st1 = conn.prepareStatement(req1);
st1.setInt(1, x);
st1.setInt(2, y);
ResultSet res1 = st1.executeQuery();

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de super_toinou
Messages postés
18
Date d'inscription
vendredi 12 octobre 2007
Statut
Membre
Dernière intervention
26 mai 2010
0
Merci
vraiment je vous remercie,

les deux codes marchent parfaitement ... sauf que au lieu d'avoir un message d'erreur sur JOptionPane , j'ai des messages d'erreurs aprés compilation

quelqu'un peut m'expliquer de quoi s'agit il est qu'elle est la solution pour faire apparaitre mon JOptionPane.

voici les messages :

java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:476)
at envoie_sms.Envoie_Sms.actionPerformed(Envoie_Sms.java:164)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:273)
at javax.swing.plaf.basic.BasicButtonListener$ReleasedAction.actionPerformed(BasicButtonListener.java:301)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1512)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2435)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2470)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2398)
at java.awt.Component.processEvent(Component.java:4943)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3639)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1688)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:593)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:765)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:698)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:559)
at java.awt.Component.dispatchEventImpl(Component.java:3509)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Window.dispatchEventImpl(Window.java:1590)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

java.lang.NumberFormatException: For input string: "erfgzerg"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:426)
at java.lang.Integer.parseInt(Integer.java:476)
at envoie_sms.Envoie_Sms.actionPerformed(Envoie_Sms.java:164)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:273)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5134)
at java.awt.Component.processEvent(Component.java:4931)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3639)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
at java.awt.Container.dispatchEventImpl(Container.java:1609)
at java.awt.Window.dispatchEventImpl(Window.java:1590)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
Commenter la réponse de oussamatel
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
82
0
Merci
Salut,

Comme l'erreur l'indique, tu essaye de formater un texte vide ou "erfgzerg" au format nombre... donc forcément, ca passe pas !
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS