Probleme avec la consultation [Résolu]

Signaler
-
 danechoue -
Bonjour,
voici le code que j 'utilise pour pouvoir consulter mon formulaire bon de commande et ca ne marche pas.
Voici le message d erreur: JAVA EXCEPTION INVALID COLUM NUMBER<9>.
ce seul formulaire doit faire appel a 3 tables est c la source du probleme

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="java.sql.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Gestion de Stock</title>
</head>
<body>
<center>
<h2>Gestion de Stock du Magasin du CHU Gabriel Touré</h2>
<hr>
<table> <tr> <td> <h3>Bon de Commande </h3> </td>
<TD><a href="FormMenuPrincipalAd.jsp"> <IMG SRC="accueil.gif" border=0 ALT="Menu Principal"></a></TD>
<tr> </table>

<%
// Connection à la base Oracle
Connection con=null;

try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con = DriverManager.getConnection(
"jdbc:odbc:youbs", "dane",
"dane");
//out.write("connexion reussie !");
}
catch(Exception e)
{
out.write("connexion non reussie !");
}
// lancement de la requete
Statement st=null,st1=null;
ResultSet rs=null,rs1=null;

st=con.createStatement();
st1=con.createStatement();
//st2=con.createStatement();
rs=st.executeQuery("select * from Commande");
rs1=st1.executeQuery("select * from Fournisseur");
//rs2=st2.executeQuery("select * from Service");
%>
<table BORDER="2">
<caption>Liste des Bon de Commande</caption>
<thead>
<tr>
<TH>Bon N°</TH>
<TH>Demandeur</TH>
<TH>Imputation</TH>
<TH>Date</TH>
<TH>Total HT</TH>
<TH>TVA</TH>
<TH>Total TVA</TH>
<TH>Total TTC</TH>
<TH>Nom</TH>
<TH>Adresse</TH>
<TH>Telephone</TH>
<TH>N°Commande</TH>
<TH>Code Produit</TH>
<TH>Designation</TH>
<TH>Unité</TH>
<TH>Type</TH>
<TH>Observations</TH>
<TH>Prix Unitaire</TH>
</tr>
</thead>
<tbody>
<% while(rs.next())

{ %>
<TR>
<TD> <%= rs.getString(1) %></TD>
<TD> <%= rs.getString(2) %></TD>
<TD> <%= rs.getString(3) %></TD>
<TD> <%= rs.getString(4) %></TD>
<TD> <%= rs.getString(5) %></TD>
<TD> <%= rs.getString(6) %></TD>
<TD> <%= rs.getString(7) %></TD>
<TD> <%= rs.getString(8) %></TD>
<TD> <%= rs.getString(9) %></TD>
<TD> <%= rs.getString(10) %></TD>
<TD> <%= rs.getString(11) %></TD>
<TD> <%= rs.getString(12) %></TD>
<TD> <%= rs.getString(13) %></TD>
<TD> <%= rs.getString(14) %></TD>
<TD> <%= rs.getString(15) %></TD>
<TD> <%= rs.getString(16) %></TD>
<TD> <%= rs.getString(17) %></TD>
<TD> <%= rs.getString(18) %></TD>
<TD><a href="">Modifier</a></TD>
<TD><a href="">Supprimer</a></TD>
</TR>
<% } %>
</tbody>
</table>
</center>
</body>
</html>

2 réponses

Messages postés
152
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
17 janvier 2014
3
Remplace ton "*" dans ta requête "select * from Commande" par la liste des colonnes auxquelles tu souhaites accéder. Ensuite, dans ta construction de table, remplace les rs.getString(numéro) par rs.getString("nom_de_ta_colonne")
Plusieurs avantages à procéder ainsi :
- tu ne récupères que les colonnes dont tu as besoin
- tu n'es plus sujet aux changements d'ordre de colonnes
- tu sais ce que tu affiches (mince, c'est quoi ma colonne n°14 ?)
- tu trouves immédiatement la colonne qui peut poser problème
Si tu a besoin d'accéder à plusieurs tables, préfère une seule requête avec des jointures plutôt que plusieurs select avec du bricolage pour lier les données provenant des différentes tables.
Mercie pour votre aide.
Mon probleme est resolut