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
131
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
8
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
131
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