Probleme avec la consultation

Résolu
danechoue - 15 janv. 2014 à 15:21
 danechoue - 21 janv. 2014 à 14:56
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

Anthed
Messages postés
152
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
17 janvier 2014
3
17 janv. 2014 à 12:06
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.
0
Mercie pour votre aide.
Mon probleme est resolut
0