Java access

Fermé
hessaid Messages postés 1 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 13 février 2008 - 13 févr. 2008 à 23:51
 twister9458 - 1 févr. 2009 à 14:59
Bonjour,
mon peobleme et le suivant:

je veux afficher des informations d'une base des donnees Access, ma table est nommée:Tab_Client et contient 2 colonnes:ID_Client et Nom_Client.en plus je veux inserer des enregistrements.voici mon code:

import javax.swing.*; // Pour les composant Swing

import javax.swing.table.*; // Pour la classe AbstractTableModel

import java.awt.event.*; // Pour l'action sur le bouton

import java.sql.*; // Pour les rêquetes SQL

public class InterfaceApplication extends JFrame implements ActionListener {

public InterfaceApplication () {

super ("Table Client");

setBounds (50, 50, 300, 300);

setResizable (false);

setDefaultCloseOperation (EXIT_ON_CLOSE);

getContentPane ().setLayout(null);

clientTable = new JTable (5, 2);

clientTable .setBounds(20, 20, 250, 80);

clientTable .setEnabled (false);

tableHandler = new TableHandler ();

clientTable .setModel (tableHandler);

clientIDLabel = new JLabel("Identifiant du client :");

clientIDLabel .setLocation(20, 140);

clientIDLabel .setSize(clientIDLabel.getPreferredSize ());

clientNameLabel = new JLabel("Nom du client :");

clientNameLabel .setLocation(20, 170);

clientNameLabel .setSize(clientNameLabel.getPreferredSize ());

clientIDField = new JTextField();

clientIDField .setBounds(140, 140, 140, 20);

clientNameField = new JTextField();

clientNameField .setBounds(140, 170, 140, 20);

submitButton = new JButton("Valider");

submitButton .setBounds(50, 220, 190, 30);

getContentPane ().add(clientTable);

getContentPane ().add(clientIDLabel);

getContentPane ().add(clientNameLabel);

getContentPane ().add(clientIDField);

getContentPane ().add(clientNameField);

getContentPane ().add(submitButton);

setVisible (true);

}

public void actionPerformed (ActionEvent event) {

String name = clientNameField.getText();

String id = clientIDField.getText();

// Ne pas insérer des données vides

if ((id.length () > 0) & (name.length() > 0)) {


try

{

Connection connection;

connection = DriverManager.getConnection("jdbc:odbc:Vins");

Statement myStatement = connection.createStatement();
myStatement.executeUpdate("INSERT INTO Tab_Client VALUES (" + id + "," + name + ")");

connection.close();

}

catch (SQLException e)

{

System.out.println(e);

}

// Faire un mise à jour du contenu du JTable

tableHandler .updateClientTable();

}

}

public static void main (String [] args) {

InterfaceApplication App = new InterfaceApplication ();

return ;

}

private JTable clientTable;

private JLabel clientIDLabel;

private JLabel clientNameLabel;

private JTextField clientIDField;

private JTextField clientNameField;

private JButton submitButton;

private TableHandler tableHandler;

// Initialiser les pilotes

// ça se faire dans le main

static {

try {

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

}

catch (ClassNotFoundException e) {

System.out.println ("Erreur : " + e.getMessage ());

System.exit (1);

}

}

}

class TableHandler extends AbstractTableModel {

private String [][] data = new String [MAX_ROWS][MAX_COLUMNS];

private static final int MAX_ROWS = 5;

private static final int MAX_COLUMNS = 2;

// Méthode que j'ajoute pour afficher 5 enregistrement

// Par ordre décroissant

public void updateClientTable () {

try {

// Etablir une connexion à la base de donnée


Connection connection;

connection = DriverManager.getConnection ("jdbc:odbc:Vins");

Statement myStatement = connection.createStatement();


ResultSet rs = myStatement.executeQuery("SELECT* FROM Tab_Client ORDER BY ID_Client DESC LIMIT " + MAX_ROWS);

int row = 0;

while (rs.next())

{

data [row][0] = rs.getString("ID_Client");

data [row][1] = rs.getString("Nom_Client");

row++;

}

// Fermer la connection

connection.close();

// Informer la table qu'il y a de nouvelles données

fireTableDataChanged();

}

catch (SQLException e) {
System.out.println ("Erreur : " + e.getMessage ());

System.exit (1);


}

}

// Méthode abstraite de AbstractTableModel

public int getColumnCount()

{

return MAX_COLUMNS;

}

// Méthode abstraite de AbstractTableModel

public int getRowCount()

{

return MAX_ROWS;

}

// Méthode abstraite de AbstractTableModel

public Object getValueAt(int row, int column)

{

return data[row][column];

}

}

à la fois qu'il est executé, il affiche rien dans le tableau,

merci d'avance
A voir également:

1 réponse

de premiere vue dans ta requete sql corrige :
insert into tatable values ('"+id+"','"+name+"')";
en pointillés les noms de tes variables.
==> j'ai ajouté des cote ' avant et aprés les " de tes variables.
0