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 :

Création Fichier mdb en C#


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut Création Fichier mdb en C#
    Bonsoir à tous, je me permets de vous écrire car je rencontre un problème lors de la création d'un fichier mdb en c# via visual studio 2010.
    Auriez-vous une idée sur la meilleure méthode à appliquer?

    Voici ce que j'ai déjà essayer :

    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    FileStream fs = File.Create(@"D:\Données _Compteurs\BD Access\Gestion-Compteurs.mdb");
     //Libère les ressources du fichier 
    fs.Close();
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                try
                {
                    //Création d'un fichier vide.
                    ADOX.Catalog cat = new ADOX.Catalog();
                    cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\\Données _Compteurs\\BD Access\\Gestion-Compteurs.mdb';Jet OLEDB:Engine Type=5");
                    cat = null;
                    MessageBox.Show("fichier créé");
                }
                catch
                {
                    MessageBox.Show("Erreur dans la creation de la base");
                }
    Malheureusement les 2 méthodes ne fonctionnent pas

  2. #2
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonjour,

    La parole divine...

    Bon dév.
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse mais c'est exactement ce que j'ai utilisé en deuxième méthode mis à part que j'ai utilisé ADOX.Catalog au lieu d'ADOX.CatalogClass car j'ai vu sur le net que c'était plus adapté.

    Cependant, cela ne fonctionne pas et je ne vois vraiment pas pourquoi.

  4. #4
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Tu obtiens quoi comme message d'erreur/exception? Bref pourquoi ça ne marche pas? As-tu le provider installé?

    J'ai fait le test sur mon pc à l'instant, j'ai bien ma nouvelle base de données access créée.
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Déjà il faut éviter les caractères accentués dans les chemins... C'est juste une best practice, le problème ne vient peut-être pas de là.

    Est-ce que tu as les permissions pour écrire dans le répertoire ?

    Met ceci dans ton catch à la place de MessageBox.Show("Erreur dans la creation de la base"); :


    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch (Exception ex)
    {
        MessageBox.Show("Le message qui va aider : " + ex.Message);
    }
    Ca te permettra de voir le message d'erreur, sinon ça ne sert à rien de mettre un TRY/CATCH.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Mon 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
     
                //-----------------------
                // Creation de la BD Access
                //-----------------------
                try
                {
                    //Création d'un fichier vide.
                    ADOX.CatalogClass cat = new ADOX.CatalogClass();
                    cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Données _Compteurs\\BD Access\\Gestion-Compteurs.mdb;Jet OLEDB:Engine Type=5");
                    cat = null;
                    MessageBox.Show("fichier créé");
                }
                catch
                {
                    MessageBox.Show("Erreur dans la creation de la base : ");
                }
    et j'obtiens le message contenu dans le catch et la base n'est pas créée.

    Et l'erreur obtenue dit :
    Une exception de première chance de type 'System.Runtime.InteropServices.COMException' s'est produite dans Tracés_Courbes.exe

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il y a plus simple que d'intégrer une dll au projet :

    créer une base de données vide avec access, la glisser dans les ressources du programme
    ensuite il suffit d'écrire les octets dans un fichier du nom qu'on souhaite
    (ca doit être pareil sur c#, en vb.net quand on glisse un fichier en ressource ca créé une propriétée dans my.resources, qui sera ici du type byte[])
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Merci POL63, pourrait tu être plus précis car je ne connais pas cette méthode

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ca me semble assez précis

    quand on ouvre le fichier des ressources du projet, on peut glisser des fichiers dedans
    quand on glisse un fichier texte ca créé une propriété string qui retourne le contenu du fichier
    quand on glisse un fichier image ca créé une propriété system.Drawing.Image (enfin au moins en windows forms)
    quand on glisse un fichier qui n'a pas d'équivalent, ca créé une propriété byte[]

    il ne reste plus qu'à faire dans le programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system.io.File.WriteAllBytes("path souhaité", my.resources.lefichiermdb)
    et ensuite on peut ouvrir une connection dessus

    après le comportement en c# diffère peut etre, mais en vb.net on a my.resources.*
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup mais malheureusement j'obtiens des erreurs lors de la compilation mais j'avance un peu plus vers mon but

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
              try
                {
                    System.IO.File.WriteAllBytes(@"D:\Données_Compteurs\BD Access", Resources.My_DB);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Erreur ", e.ToString());
                }
    Mes erreurs :

    Erreur 15 'Tracés_Courbes.Resources' est un 'espace de noms' mais est utilisé comme un 'variable' C:\Users\legenlau\Desktop\Projet_Courbes\Tracés_Courbes\Tracés_Courbes\GestionBDD.cs 99 81 Tracés_Courbes
    Erreur 16 'Tracés_Courbes.Resources.My_DB' est un 'type', qui n'est pas valide dans le contexte donné C:\Users\legenlau\Desktop\Projet_Courbes\Tracés_Courbes\Tracés_Courbes\GestionBDD.cs 99 81 Tracés_Courbes
    Erreur 17 La méthode surchargée correspondant le mieux à 'System.IO.File.WriteAllBytes(string, byte[])' possède des arguments non valides C:\Users\legenlau\Desktop\Projet_Courbes\Tracés_Courbes\Tracés_Courbes\GestionBDD.cs 99 17 Tracés_Courbes
    Erreur 18 Argument 2*: impossible de convertir de 'Tracés_Courbes.Resources.My_DB' en 'byte[]' C:\Users\legenlau\Desktop\Projet_Courbes\Tracés_Courbes\Tracés_Courbes\GestionBDD.cs 99 81 Tracés_Courbes

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Bon ba je ne comprends pas d'où proviennent mes erreurs et je n'arrive toujours pas à créer un fichier mdb. J'attends votre aide avec impatience

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    que dit l'intellisense à propos de
    Tracés_Courbes.Resources.My_DB
    ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    je viens de tester sur un nouveau projet c#
    double clic sur resources.resx
    je glisse le mdb il me demande si je veux faire un dataset, j'ai dis non
    ca m'a bien créé la propriété suivante
    WindowsFormsApplication1.Properties.Resources.a
    en tant que byte[]
    donc j'imagine que c'est bon
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Merci Pol63 de ton soutien, voilà après de nouveaux tests je n'obtiens plus d'erreurs de compilation mais je rentre direct dans mon catch et voilà ce que j'obtiens comme erreur :

    Erreur Lors de la création de la Base de Données

    'Tracés_Courbes.vshost.exe' (Managé (v4.0.30319))*: 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'Tracés_Courbes.vshost.exe' (Managé (v4.0.30319))*: 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.Wrapper.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'Tracés_Courbes.vshost.exe' (Managé (v4.0.30319))*: 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'Tracés_Courbes.vshost.exe' (Managé (v4.0.30319))*: 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.

  15. #15
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    dans le catch ce qui est important c'est ex.message
    sans ca on ne peut pas savoir quel est le problème
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Ah ça je ne connaissais pas, merci.
    Voici ce que j'ai obtenu comme message :

    Erreur Lors de la création de la Base de Données
    L'accès au chemin d'accès 'D:\Données_Compteurs\BD Access' est refusé.

    Du coup je vais voir au niveau des accès utilisateurs comment réglé ça.
    Vraiment encore merci pour ton aide.

  17. #17
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Déjà essaie de supprimer l'accent, je ne pense pas que ce soit la source du problème mais comme dis plus haut cela fait partie des "bonnes pratiques".

    Renseignes tu viens une extension (.mdb par exemple) lors de la création de ta base de données ?

    Ensuite ton problème peut venir du fait que même s'il y a une erreur, un précédent essais à peut être créé le fichier dans ton répertoire, et que celui-ci n'ayant pas été fermé correctement suite à l'erreur, il y a toujours un verrou dessus.

    A vérifier entre autre part la liste des processus sur ta machine pour voir si tu n'as pas un exe du nom de ton application test qui traine toujours.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Ah vraiment merci infoSam76 grâce à ton indication sur l'extension mdb j'ai enfin trouvé la solution à mon problème : En fait je n'avais pas renseigné le nom que devrait porter ma base!!! Du coup, ça marche du feu de dieu pour cette partie (J'ai encore des soucis avec des requêtes vers ma base et la récupération des data à afficher sur une courbe Zedgraph).

    Un grand Merci à tous ceux qui ont pris part à mon problème et à sa résolution!!!

  19. #19
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    ha ok donc si je comprends bien "\BD Access" était un répertoire. J'ai fait plusieurs fois la même erreur aussi
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

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

Discussions similaires

  1. Création d'un fichier MDB
    Par SmithC dans le forum JDBC
    Réponses: 2
    Dernier message: 04/07/2012, 12h02
  2. création fichier mdb, pourquoi ?
    Par sergoid dans le forum Access
    Réponses: 15
    Dernier message: 25/08/2006, 14h42
  3. [MFC] création fichier mdb
    Par julien.nasser dans le forum MFC
    Réponses: 21
    Dernier message: 26/04/2006, 19h19
  4. Création Fichier
    Par NPortmann dans le forum ASP
    Réponses: 4
    Dernier message: 03/11/2004, 16h36
  5. Création fichier MDE
    Par faventin dans le forum Access
    Réponses: 4
    Dernier message: 25/10/2004, 15h03

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