Rquête SQL (Select From Where) avec les variables

Résolu
oussamatel Messages postés 18 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 26 mai 2010 - 17 mai 2010 à 09:59
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre 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

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 mai 2010 à 10:32
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
3
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
17 mai 2010 à 10:35
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();
3
oussamatel Messages postés 18 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 26 mai 2010
17 mai 2010 à 11:19
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)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 mai 2010 à 11:34
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
0
Rejoignez-nous