Salut tout le monde
j'ai fait un programme qui permet de récupérer des données a partir d'une table sous SqlServer2000 et il les affiche dans un JTable.
J'ai fais 4 classe :
Classe 1 : Pour effectuer la connexion avec la BDD
Classe 2 : La ou j'ai mit ma requête, voila :
Classe 3 : c'est la classe qui permet de remplir le JTable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public static ResultSet afficherClient(Date d1, Date d2) throws Exception { String query = "Select * from Incident where Date_cou BETWEEN '"+d1+"' and '"+d2+"'" ; return connexion.select(query); } public static ResultSet nbreLigne(Date d1,Date d2) throws Exception { String query = "select count (*) from Incident where Date_cou BETWEEN '"+d1+"' and '"+d2+'" ; return connexion.select(query); }
Classe 4 : la classe qui m'ouvre la fenetre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 static JTable remplir(ResultSet rs,ResultSet rs1) { nombrecolone = rs.getMetaData().getColumnCount();//le nbre de colonne String[] LesColones = new String[nombrecolone];// creer un tableau selon le nbre de colonne for (int k = 1; k <= nombrecolone; k++) {// remplir le tableau qui contient les colonne LesColones[k - 1] = rs.getMetaData().getColumnName(k); } while (rs1.next()) { L'erreur est a ce niveau ! nombreligne=rs1.getInt(1); } ligne = new String[nombreligne][nombrecolone]; int j = 0; while (rs.next()) { for (int i = 1; i <= nombrecolone; i++) { int h = i - 1; ligne[j][h] = rs.getString(i); } j++; } JTable tableau = new JTable(ligne, LesColones);
Dans la fenetre il y a deux champs JTextField pour faire entrer les deux date avec un boutton c adire l'utilisateur il entre les deux dates et il clik sur le boutton pour qu'il voit l'affichage du tableau :
Mais je recoit une erreur des l'exécution du programme, L'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 : : : //code pr afficher le textfieled et le bouton ... ResultSet rs = aa.afficherClient(qq1,qq2); ResultSet rs1 = aa.nbreLigne();// pr copter le nbre de ligne afficher a = new afficher(); final JTable tt= a.remplir(rs, rs1); inputPanel.add(tt).setVisible(false); c.add(inputPanel); //this.getContentPane().add(new JScrollPane(tt)).setVisible(false); jButton.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(java.awt.event.MouseEvent e) { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); java.util.Date do1 = null; try { do1 = sdf.parse(da.getText()); System.out.println(" "+do1); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } java.util.Date do2 = null; try { do2 = sdf.parse(te.getText()); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } java.sql.Date qq1 = new java.sql.Date(do1.getTime()); java.sql.Date qq2 = new java.sql.Date(do2.getTime()); System.out.println(qq1); inputPanel.add(tt).setVisible(true); } }); }
Le probleme est dans la classe 3 qui remplit le JTable, dans " while (rs1.next())"Erreur de syntaxe lors de la conversion d'une valeur datetime à partir d'une chaine de caractère
Je sais pas comment faire pour corrigé cette erreur !
Pourriez vous m'aider SVP
MERCI.
Partager