-2
Ich habe eine Tabelle wie folgt aus:Oracle ERROR ungültige Nummer
ARITHMOS KOD DATE A B C
1 ΑΓΟ 01/08/2016 5 2 3
2 ΠΛΗ 02/08/2016 3 2 1
und Netbeans-Programm möchte ich Namentabelle und DATUM UND KOD einzusetzen und nur die Zeilen, die die Kriterien erfüllen, erhalten.
Code:
String pote=ac3.getText();//name table
String c=((JTextField)jdt1.getDateEditor().getUiComponent()).getText();//date
String d=((JTextField)jdt2.getDateEditor().getUiComponent()).getText();//date
String s0=(String)jcb1.getSelectedItem();//KOD
String sql="SELECT * FROM "+pote+" WHERE (Hmerominia BETWEEN "+c+" AND "+d+") AND KOD='"+s0+"' ORDER BY ARITHMOS";
if (re == JOptionPane.YES_OPTION) {try {
stm=(OracleStatement) conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_UPDATABLE);
rs = (OracleResultSet) stm.executeQuery(sql);
UpdateJTable();
/* while(rs.next()){
v0.setText(rs.getString("ARITHMOS"));
}*/
}
catch(Exception e1){
JOptionPane.showMessageDialog(null, e1);
}
}else if (re == JOptionPane.NO_OPTION) {
this.setVisible(true);
}
Fehler ungültige Nummer zeigt.
Was sind alle Variablen auf - was bedeutet 'sql' als am Ende? Und wie heißt Ihr Tisch eigentlich? Sie sollten Bindevariablen verwenden, aber das scheint ein Nebenproblem zu sein. –
Ihnen fehlen die einfachen Anführungszeichen um 'ΑΓΟ'. Ihr verkettetes SQL wird wie folgt aussehen: AND KOD = ΑΓΟ ORDER BY .... Dies ist offensichtlich ungültig, weil es nach einer Spalte namens 'ΑΓΟ' sucht. Aber wie bereits vorgeschlagen, sollten Sie Ihre Parameter binden und die Werte nicht direkt in der Zeichenfolge verketten. – sstan
Ich setze die einfachen Anführungszeichen, aber jetzt sagt ungültige Nummer. – asd32