J'ai été à cela pendant un certain temps et j'ai essayé différents exemples (y compris quelques-uns que j'ai trouvé ici), et j'ai essayé de les adapter à ce dont j'ai besoin.La requête DB ne remplit pas la zone de liste déroulante ... pourquoi?
J'essaie d'utiliser une requête de base de données dans une servlet pour remplir une zone de liste modifiable dans le formulaire html résultant qui est créé. Alors que tout se compile et que la page s'ouvre avec une combobox, il n'y a rien dans la boîte à choisir, ce qui me dit que quelque chose ne va pas avec la façon dont je passe des variables.
J'ai fondamentalement réduit mes méthodes à deux, mais obtenir les mêmes résultats des deux.
Quelqu'un peut-il avoir un look-see et me donner un indice?
out.print(`"<tr><td>SoldWhich Home ID: `</td><td>"`);
//Query table for results to go into option box
ResultSet rs1 = null;
Statement stmt1 = null;
Connection con1 = null;
try {
Class.forName(DRIVER);
con1 = DriverManager.getConnection(URL, username, password);
String sql = "SELECT home_id FROM Home";
stmt1 = con1.createStatement();
rs1 = stmt1.executeQuery(sql);
ArrayList<String> soldWhich = new ArrayList<String>();
List<String> soldWhich = new ArrayList<String>();
while (rs1.next()){
for (int i=1;i<=rs1.getRow(); i++){
String value = rs1.getString(1);
soldWhich.add(value);
}
}
}
catch(Exception e){}
//Begin option box
out.print(`"<select width=\"150px\" align=\"right\" name=\"soldWhichBox\">"`);
String soldWhich[] = (String[])req.getAttribute("home_id");
//populate with query output
try{
for(String sh : soldWhich){
out.print(`"<option width=\"150px\" align=\"right\" value=\""+sh+"\">"+sh+"</option>"`);
}
rs1.close();
con1.close();
}
catch (Exception e){}
out.print(`"</select>"`);
out.print(`"</td></tr>"`);
Et l'autre méthode:
out.print(`"<tr><td>SoldWhich Home ID: </td><td>"`);
//Query table for results to go into option box
ResultSet rs1 = null;
Statement stmt1 = null;
Connection con1 = null;
try{
Class.forName(DRIVER);
con1 = DriverManager.getConnection(URL, username, password);
String sql = "SELECT home_id FROM Home ORDER BY home_id";
stmt1 = con1.createStatement();
rs1 = stmt1.executeQuery(sql);
List<String> soldWhich = new ArrayList<String>();
while (rs1.next()){
soldWhich.add(rs1.getString(1));
}
}
catch(Exception e){}
//Begin option box
out.print(`"<select width=\"150px\" align=\"right\" name=\"soldWhichBox\">"`);
String soldWhich[] = (String [])req.getAttribute("home_id");
//populate with query output
try{
for(String sh : soldWhich){
out.print(`"<option width=\"150px\" align=\"right\" value=\""+sh+"\">"+sh+"</option>"`);
}
rs1.close();
con1.close();
}
catch (Exception e){}
out.print(`"</select>"`);
out.print(`"</td></tr>"`);
ok ... laissez-moi essayer – gcurrier
En fait, si je supprime cette ligne, la variable "soldWhich" dans la boucle for-each devient non-initialisée ... soupir ... de plus en plus compliqué à la minute ... – gcurrier
Définir la liste VenduQui se trouve avant le bloc try et de prendre la liste dans le bloc try. –
CoolBeans