IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Utiliser JFile Chooser


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut Utiliser JFile Chooser
    bonjour,
    j'ai utilisé une requête qui sert a importer un fichier csv dans une base de données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATA LOCAL INFILE 'C:\\Users\\Desktop\\TT (4).csv' INTO TABLE incident FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'  (id_incident, status, vendor, priority, criticality_tt, title, description, affected_ci, affected_service, assignee, assignment_group, reassignment_count, open_time, close_time, outage_start, reassignment_time, outage_end, impact, solution, assignment_manager_name, assign_deptmgr, opened_by, closed_by, closure_code, update_action, last_updated_by);
    je veux faire cette opération avec JFileChooser alors j'ai essayé avec ce code:

    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
     JFileChooser fc=new JFileChooser(); 
    fc.showOpenDialog(this);
    File f=fc.getSelectedFile();
    String path=f.getAbsolutePath();
    try
    { 
        FileInputStream fin=new FileInputStream(f);
    int len=(int)f.length(); 
            java.sql.PreparedStatement ps1=con.prepareStatement("LOAD DATA LOCAL INFILE '?' INTO TABLE incident FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n'  (id_incident, status, vendor, priority, criticality_tt, title, description, affected_ci, affected_service, assignee, assignment_group, reassignment_count, open_time, close_time, outage_start, reassignment_time, outage_end, impact, solution, assignment_manager_name, assign_deptmgr, opened_by, closed_by, closure_code, update_action, last_updated_by)");
    ps1.setBinaryStream(1, fin, len); 
    int status =ps1.executeUpdate();
    if(status > 0) 
    { 
        j1.setText("Successfully inserted in DB"); 
    }
    else
    { 
            j2.setText(" not inserted!"); 
            } 
    }
    catch(Exception e)
    {System.out.println(e);
    }
    il n'affiche pas d'erreur et pas de résultat.
    merci d'avance.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Cette fonction mysql s'attends à un nom de fichier local (un string donc, qui peut provenir de ton JFileChooser) et de la manière dont tu l'as fait ça ne fonctionnera pas. Il faut mettre le nom du fichier dans le prepared statement et non envoyer des données binaire comme tu l'as fait.

    https://dev.mysql.com/doc/refman/5.1/en/load-data.html

    Citation Envoyé par nabil123456 Voir le message
    il n'affiche pas d'erreur et pas de résultat.
    Ben forcement que si puisque tu as il y'a forcement un résultat (ou une exception). :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if(status > 0) 
    { 
        j1.setText("Successfully inserted in DB"); 
    }
    else
    { 
        j2.setText(" not inserted!"); 
     
    }
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    merci pour votre réponse .j'ai essayé avec ce code :
    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
    try {
             BufferedReader br=new BufferedReader(new FileReader(path));
            String line;
             while ((line=br.readLine())!=null){
                 String[]value=line.split(";");//separator
                 String sql="insert into incident (id_incident, status, vendor, priority, criticality_tt, title, description, affected_ci, affected_service, assignee, assignment_group, reassignment_count, open_time, close_time, outage_start, reassignment_time, outage_end, impact, solution, assignment_manager_name, assign_deptmgr, opened_by, closed_by, closure_code, update_action, last_updated_by)"
                         +"values ('"+value[0]+"','"+value[1]+"','"+value[2]+"','"+value[3]+"','"+value[4]+"','"+value[5]+"','"+value[6]+"','"+value[7]+"','"+value[8]+"','"+value[9]+"','"+value[10]+"','"+value[11]+"','"+value[12]+"','"+value[13]+"','"+value[14]+"','"+value[15]+"','"+value[16]+"','"+value[17]+"','"+value[18]+"','"+value[19]+"','"+value[20]+"','"+value[21]+"','"+value[22]+"','"+value[23]+"','"+value[24]+"','"+value[25]+"',)";              
     
        java.sql.PreparedStatement pst=con.prepareStatement(sql);
                 pst.executeUpdate();
             }
             br.close();
         }   
     
            catch (Exception e){  
                                JOptionPane.showMessageDialog(this,e);
                       }
    mais un message d'erreur m'apparue:
    java.lang.arrayIndexOutOfBounds:0

    merci

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[]value=line.split(";");//separator
    ne semble pas fonctionner. Elle semble retourner un tableau vide. Voila ce que le message t'indique en tentant d'y accéder en position 0.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Utilisation library image-chooser
    Par totofe dans le forum Android
    Réponses: 0
    Dernier message: 08/06/2015, 20h25
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo