Bonjour à tous, je débute dans la programmation, mais afin de clore mon projet, un problème survient.

Mon problème est qu'une requête ne fonctionne pas sous NetBeans alors qu'elle fonctionne sans aucun problème dans ma base de donnée.

Programmes utilisés :
NetBeans IDE 6.9.1
SQL Developer

le bout de code :

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

String choix="";
String a="";
String b="";
String c="";
String d="";
String e="";
String f="";
String g="";
String h="";
String ii="";
String jj="";
String k="";
String l="";
String m="";
String n="";


if (jComboBox1.getSelectedItem().toString() == "Administratif_RH") choix = " service.numero_serv = 'S01-1'";
else if (jComboBox1.getSelectedItem().toString() == "Secretariat") choix = " service.numero_serv = 'S01-2'";
else if (jComboBox1.getSelectedItem().toString() == "Comptabilite") choix = " service.numero_serv = 'S02'";
else if (jComboBox1.getSelectedItem().toString() == "Logistique") choix = " service.numero_serv = 'S03-2'";
else if (jComboBox1.getSelectedItem().toString() == "Conditionnement") choix = " service.numero_serv = 'S03-1'";
else if (jComboBox1.getSelectedItem().toString() == "Service_Achat") choix = " service.numero_serv = 'S05-1'";
else if (jComboBox1.getSelectedItem().toString() == "Service_Vente") choix = " service.numero_serv = 'S05-2'";
else if (jComboBox1.getSelectedItem().toString() == "Qualite") choix = " service.numero_serv = 'S04'";
else if (jComboBox1.getSelectedItem().toString() == "Impression") choix = " service.numero_serv = 'S07'";
else if (jComboBox1.getSelectedItem().toString() == "Informatique") choix = " service.numero_serv = 'S06'";
else if (jComboBox1.getSelectedItem().toString() == "Tous_les_services") choix = "1=1";

if (jCheckBox15.isSelected()==false)
{
if (jCheckBox1.isSelected()==true) a = "numero_ordi,";
else a = "";
if (jCheckBox2.isSelected()==true) b = "nom_ordi,";
else b = "";
if (jCheckBox3.isSelected()==true) c = "modele_processeur,";
else c = "";
if (jCheckBox4.isSelected()==true) d = "frequence_processeur_ghz,";
else d = "";
if (jCheckBox5.isSelected()==true) e = "carte_graphique,";
else e = "";
if (jCheckBox6.isSelected()==true) f = "carte_mere,";
else f = "";
if (jCheckBox7.isSelected()==true) g = "carte_reseau,";
else g = "";
if (jCheckBox8.isSelected()==true) h = "memoire_vive_mo,";
else h = "";
if (jCheckBox9.isSelected()==true) ii = "stockage_go,";
else ii = "";
if (jCheckBox10.isSelected()==true) jj = "port_usb_2,";
else jj = "";
if (jCheckBox11.isSelected()==true) k = "port_rj45_firewire,";
else k = "";
if (jCheckBox12.isSelected()==true) l = "port_dvi_vga_hdmi,";
else l = "";
if (jCheckBox13.isSelected()==true) m = "port_ps,";
else m = "";
if (jCheckBox14.isSelected()==true) n = "numero_mat,";
else n = "";


try
{
ConnectionOracle Ora = new ConnectionOracle();
Statement stmt = Ora.getStatement();
String rqligne = "SELECT count(numero_ordi) FROM ordinateur WHERE " + choix;

String st = "SELECT " + a + b + c + d + e + f + g + h + ii + jj + k + l + m + n + "(service.numero_serv) FROM service,materiel,ordinateur WHERE (service.numero_serv) = (materiel.numero_serv) AND (materiel.numero_mat) = (ordinateur.numero_mat) AND " + choix;
System.out.println(st);
InterfaceProjetAccueilOrdinateurAffichage IPAOA = new InterfaceProjetAccueilOrdinateurAffichage(st, rqligne);
IPAOA.setVisible(true);
this.dispose();
}

catch(SQLException ex)
{
}


}

[...........] encore du code mais qui ne rentre pas en compte dans mon problème
}


Comme dit plus haut, je débute en programmation, ce que j'ai fait doit vous choquez je pense, mais pour le moment sa fonctionne en tout cas mon schéma de codage fonctionne dans d'autres feuilles sauf que je n'utilise pas de précision table.nom_variable.

J'ai essayer sans mettre le " service. " devant le numero_serv, mais quand j'exécute ma feuille, sa me dit : définition de colonne ambigue
En effet, numero_serv est la clé primaire de ma table service, et la clé étrangère de ma table matériel.

En mettant, le " service. " devant, afin de préciser à ma base de donnée dans quelle table, j'utilise le numero_serv , l'erreur d'exécution de donne :
java.sql.SQLException:ORA-00904:"SERVICE"."NUMERO_SERV" : identificateur non valide

System.out.println(st); Me donne comme requête :
SELECT numero_ordi,nom_ordi,modele_processeur,(service.numero_serv) FROM service,materiel,ordinateur WHERE (service.numero_serv) = (materiel.numero_serv) AND (materiel.numero_mat) = (ordinateur.numero_mat) AND service.numero_serv = 'S01-1'
Si je la copie-colle dans ma base de donnée en rajoutant le ";" elle fonctionne sans aucun problème.

J'espère avoir été assez claire sur mon problème, j'ai beau chercher je ne trouve rien.

Cordialement nazdreg