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

Signaler
Messages postés
18
Date d'inscription
vendredi 12 octobre 2007
Statut
Membre
Dernière intervention
26 mai 2010
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
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

4 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
8
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();
Messages postés
18
Date d'inscription
vendredi 12 octobre 2007
Statut
Membre
Dernière intervention
26 mai 2010

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)
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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