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

Messages postés
18
Date d'inscription
vendredi 12 octobre 2007
Dernière intervention
26 mai 2010
- 17 mai 2010 à 09:59 - Dernière réponse :
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
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 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 17 mai 2010 à 10:32
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

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Meilleure réponse
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Dernière intervention
8 mars 2011
- 17 mai 2010 à 10:35
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();

Merci super_toinou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de super_toinou
Messages postés
18
Date d'inscription
vendredi 12 octobre 2007
Dernière intervention
26 mai 2010
- 17 mai 2010 à 11:19
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
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 17 mai 2010 à 11:34
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.