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

C# Discussion :

Import CSV dans Table MDB il me manque quelque chose [Débutant]


Sujet :

C#

  1. #1
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juillet 2011
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juillet 2011
    Messages : 199
    Points : 129
    Points
    129
    Par défaut Import CSV dans Table MDB il me manque quelque chose
    Bonjour à tous je reviens avec un nouveau problème !
    ben ouai quand on est newbie on a beau chercher on trouve pas forcement !

    alors voilà mon soucis
    je dois importer un CSV de 5 colonnes pour alimenter une table dans mon mdb.

    j'ai fais le code suivant mais je seche !

    je ne sais pas si ce que je fais est trop compliqué pour faire la tache attendu ou si c'est le bon process.
    j'ai trouvé certaines choses sur internet et j'ai essayé d'assembler tout ca !

    Merci de votre aide


    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
     OpenFileDialog ODimpCSV = new OpenFileDialog();
                // définition répertoire Application
                string appPath = Path.GetDirectoryName(Application.ExecutablePath);
     
                if (ODimpCSV.ShowDialog() == DialogResult.OK)
                {
                        FileInfo fileinfo = new FileInfo(ODimpCSV.FileName);
                    string csvpath = Path.GetDirectoryName(ODimpCSV.ToString());
     
                     //  string strCsvFilePath = Server.MapPath("MyCSVFolder") + "\\" + fileinfo.Name;
     
                        //filUpload.SaveAs(strCsvFilePath);     
     
                      //  string strFilePath = Server.MapPath("MyCSVFolder");
     
                        using (FileStream filestr = new FileStream(appPath+ "\\schema.ini",FileMode.Create, FileAccess.Write))
                        {
                            using (StreamWriter writer = new StreamWriter(filestr))
                            {
                                writer.WriteLine("[" + fileinfo.Name + "]");
                                writer.WriteLine("ColNameHeader=True");
                                writer.WriteLine("Format=CSVDelimited");
                                writer.WriteLine("DateTimeFormat=dd-MMM-yy");
                                writer.WriteLine("Col1=A Text Width 100");
                                writer.WriteLine("Col2=B Text Width 100");
                                writer.WriteLine("Col3=C Text Width 23");
                                writer.WriteLine("Col4=C Text Width 4");
                                writer.WriteLine("Col5=C Text Width 100");
                                writer.Close();
                                writer.Dispose();
                            }
                            filestr.Close();
                            filestr.Dispose();
                        }
     
     
                        string strSql = "SELECT * FROM [" + fileinfo.Name + "]";
                        string strCSVConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ODimpCSV.FileName+ ";" + "Extended Properties='text;HDR=YES;'";
     
                        OleDbDataAdapter oleda = new OleDbDataAdapter(strSql, strCSVConnString);
                        DataTable dtbBankStmt = new DataTable();
                        oleda.Fill(dtbBankStmt);
                    string quCsvtoMdb ="";
                     OleDbConnection cn1 = new OleDbConnection(ConfigurationManager.ConnectionStrings["Application_BIC.Properties.Settings.BICcs"].ConnectionString.ToString());
                   cn1.Open();
                    foreach (DataRow ligne in dtbBankStmt.Rows)
                    {
                        foreach (DataColumn colonne in dtbBankStmt.Columns)
                        {
     
                    quCsvtoMdb = ("INSERT INTO dbo_RIB_X3 ([Type Entité],Entité,RIB,PREFIXE,[Code BIC]) VALUES ("+ligne.[0]+","+ligne.[1]+","+ligne.[2]+","+ligne.[3]+","+ligne.[4]+","+ligne.[5]+")";
                        }
     
                    }

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juillet 2011
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juillet 2011
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    Avez vous une solution pour intégrer un csv dans une table ACCESS ?

    je cherche mais je ne trouve pas grand chose

    j'ai testé ça mais ca ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // création de la requete d'insertion
                        string strSql = "SELECT * FROM [" + fileinfo.Name + "]";
                        string strCSVConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +csvpath+ ";" + "Extended Properties='text;HDR=YES;'";
    Apparemment ca doit créer un ConnectionString sur le CSV mais ca fonctionne pas
    c'est pour ca que je vous demande si vous avez une autre méthode

    merci d'avance

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juillet 2011
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juillet 2011
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    bon j'avancé apparement mon connexion string fonctionne
    mais il ne prend pas en compte mon séparateur ;

    j'ai en message d'erreur
    impossible de trouver la colonne 1
    en pas a pas je vois qu'il a mis l'ensemble des infos dans la colonne 0

    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
    // Requete de selection des elements du CSV
                    string strSql = "SELECT * FROM [" + fileinfo.Name + "]";
                    //connexion sur le fichier CSV
                    string strCSVConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + csvpath + ";" + "Extended Properties='text;HDR=YES;FMT=Delimited'";
     
                    OleDbDataAdapter oleda = new OleDbDataAdapter(strSql, strCSVConnString);
                    DataTable dtbBankStmt = new DataTable();
                    oleda.Fill(dtbBankStmt);
                    string quCsvtoMdb = "";
                    OleDbConnection cn1 = new OleDbConnection(ConfigurationManager.ConnectionStrings["Application_BIC.Properties.Settings.BICcs"].ConnectionString.ToString());
                    cn1.Open();
                    foreach (DataRow ligne in dtbBankStmt.Rows)
                    {
                        try
                        {
                            quCsvtoMdb = ("INSERT INTO dbo_RIB_X3 ([Type Entité],Entité,RIB,PREFIXE,[Code BIC]) VALUES (" + ligne[0] + "," + ligne[1] + "," + ligne[2] + "," + ligne[3] + "," + ligne[4] + ")");
                        }
                        catch (Exception ex)
                        {
                            System.Windows.Forms.MessageBox.Show(ex.Message);
                        }
    merci de votre aide
    (mêmê si j'ai l'impression de parler tout seul !!)

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juillet 2011
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juillet 2011
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    J'ai déplacé mon fichier TEXT dans le répertoire debug

    j'ai maintenant ce message ça vous parle

    Le séparateur du champ de spécification du fichier texte est identique au séparateur décimal ou au délimiteur de texte.
    dans mon fichier j'ai des ; en séparateur ! et aucunes ,

  5. #5
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juillet 2011
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juillet 2011
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    problème résolu
    j'ai refais un CSV tout propre ca passe il ne me met plus le message.

    par contre toujours en pas à pas il affiche bien mes donnes dans ma requete

    "INSERT INTO dbo_RIB_X3 ([Type Entité],Entité,RIB,PREFIXE,[Code BIC]) VALUES (Tiers,xxx,30002041340000060438G71,,)"
    mais rien n'est inséré dans la db ?

    j'ai oublié quelque chose ?

    ------------------------
    Je pense avoir trouvé
    "INSERT INTO dbo_RIB_X3 ([Type Entité],Entité,RIB,PREFIXE,[Code BIC]) VALUES ('Tiers','xxx','30002041340000060438G71','','')"

    par contre rien n'est inséré dans ma base.

    si je tape cette requête dans Access ça fonctionne

    une idée ???

  6. #6
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juillet 2011
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juillet 2011
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    Encore une fois je me répond a moi même

    résolu

    en fait j'ai tout betement oublié de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oledbcommand toto = new oledbcommand ()
     
    toto.executeNonQuery()
    voilà si ca peut servir

    Je clos ce magnifique Post ECHO !!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Importer csv dans une table sql via Python
    Par bacheld2 dans le forum Général Python
    Réponses: 6
    Dernier message: 22/04/2013, 23h01
  2. Import CSV dans un champ table
    Par pixel016 dans le forum WinDev
    Réponses: 10
    Dernier message: 27/02/2013, 23h25
  3. [Toutes versions] Import fichier csv dans table
    Par Anaxagore dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/11/2010, 15h48
  4. Import Excel dans table Existante
    Par Alpha31 dans le forum Access
    Réponses: 1
    Dernier message: 12/06/2006, 20h37
  5. Importer CSV dans MySQL
    Par The_freeman dans le forum Administration
    Réponses: 6
    Dernier message: 14/02/2006, 22h18

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