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 :

Accès à une base Access


Sujet :

C#

  1. #1
    Membre averti Avatar de infofree
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 379
    Points
    379
    Par défaut Accès à une base Access
    Bonjour,

    Je souhaite faire une petite appli afin de faire une recherche dans une BDD Access.
    En gros, je dois faire la recherche sur une "référence" unique, si elle existe, afficher d'autres informations de la même ligne, sinon, afficher un message qui dit que la référence n'existe pas.

    Très simple comme appli, mais étant novice en C#, et n'ayant jamais fait d'ADO.NET et compagnie, je vous sollicite pour me donner les étapes à suivre.
    Ce qui m’intéresse surtout, c'est de bien structurer, et non pas tout coder dans mon form, pour faciliter d'éventuelles évolutions (d'autres recherches, sur d'autres bases etc...)

    Je suppose que je dois créer une classe de connexion, etc..

    Je vous remercie d'avance
    Plus j'apprends ... Plus je me sens si loin

  2. #2
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par infofree Voir le message
    Ce qui m’intéresse surtout, c'est de bien structurer, et non pas tout coder dans mon form, pour faciliter d'éventuelles évolutions (d'autres recherches, sur d'autres bases etc...)
    Pour l'architecture ton application, tu peux te tourner vers ce topic.

    Citation Envoyé par infofree Voir le message
    Je suppose que je dois créer une classe de connexion, etc..
    Oui; et pour les bonnes pratiques en matière de connexion ado.net, tu peux lire aussi ce topic.
    N'oubliez pas le tag et

  3. #3
    Membre averti Avatar de infofree
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 379
    Points
    379
    Par défaut
    Merci, je vais regarder tout ça tranquillement...

    Une question peut être bête :
    Est-ce qu'il faut que Access soit installé sur la machine sur laquelle sera exécuté mon programme ?
    Plus j'apprends ... Plus je me sens si loin

  4. #4
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par infofree Voir le message
    Est-ce qu'il faut que Access soit installé sur la machine sur laquelle sera exécuté mon programme ?
    Si c'est une application devant s'exécuter sur un seul poste, alors oui. Mais si tu prévoit une application client-serveur, alors, je te conseillerai de changer de base de données car Access n'est pas vraiment adapté à ces cas. Tu pourras voir du côté de MySQL, SQL Server (la version express peut tenir la route si tu n'as pas besoin d'un très grand nombre de données), Oracle, ...
    N'oubliez pas le tag et

  5. #5
    Membre averti Avatar de infofree
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 379
    Points
    379
    Par défaut
    Citation Envoyé par callo Voir le message
    Si c'est une application devant s'exécuter sur un seul poste, alors oui. Mais si tu prévoit une application client-serveur, alors, je te conseillerai de changer de base de données car Access n'est pas vraiment adapté à ces cas. Tu pourras voir du côté de MySQL, SQL Server (la version express peut tenir la route si tu n'as pas besoin d'un très grand nombre de données), Oracle, ...
    Disons que c'est une application qui sera exécutée sur des machines qui contiennent déjà une base Access

    Mais ce que je ne comprend pas, c'est qu'il y'a certaines autres applications qui manipulent ces base de données, alors que Access n'est pas installé sur ces machines. (je n'ai pas le code source de ces appli! )
    Plus j'apprends ... Plus je me sens si loin

  6. #6
    Membre averti Avatar de infofree
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 379
    Points
    379
    Par défaut
    J'ai trouvé la réponse moi même

    Pas besoin que Access soit installé sur la machine!
    Au début ça ne marchait pas, j'avais le message : "ACE.OLEDB.12.0' n'est pas inscrit sur l'ordinateur local"
    J'ai remplacé le provider "ACE.OLEDB.12.0" par "Microsoft.Jet.OLEDB.4.0" et ça marche depuis, et sur toutes les plateformes.

    Pourtant il me semble bien que le provider 12.0 est plus récent que le 4.0.
    Si quelqu'un à une explication je suis preneur !

    Autre question :

    Ce que j'ai fait pour l'instant est juste pour tester, j'ai tout mis dans mon form, je voudrais maintenant l'organiser avec des classes et une séparation des couches, mais j'avoue que je ne sais pas comment m'y prendre.

    Voici le code que j'ai :

    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
       //connexion à la BDD Access
            public OleDbConnection connexion = new OleDbConnection();
     
     
            private void Form1_Load(object sender, EventArgs e)
            {
     
                connexion.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\BDD.mdb";
            }
     
            private void SearchButton_Click(object sender, EventArgs e)
            {
     
     
                OleDbCommand cmd = connexion.CreateCommand(); 
                cmd.CommandText = "Select * FROM CHAMP1 WHERE ID = '" + ID_Recherche.Text + "'";
     
                //ouverture de la connexion à la BDD
                try
                {
                    connexion.Open();
                    OleDbDataReader dr = cmd.ExecuteReader();
                    if (dr.Read())
                    {
                        //Affichage de mon résultat dans un joli tableau ...
     
     
                    }
                    else
                    {
                        // l'ID recherché n'est pas trouvé
                    }
                    connexion.Close();
                }
                catch (Exception erreur)
                {
     
                    StatusConnexion.Text = erreur.Message; 
                }
     
     
            }
    Comment je peux séparer ce code en couches SVP ?
    Plus j'apprends ... Plus je me sens si loin

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    ça marche depuis, et sur toutes les plateformes.
    Même 64 bits ?

    Sinon, compiler en "X86" au lieu de "AnyCPU".
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre averti Avatar de infofree
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 379
    Points
    379
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Même 64 bits ?

    Sinon, compiler en "X86" au lieu de "AnyCPU".
    Oui j'ai compilé en "X86" , et ça marche sur windows XP, Win 7 32bits et Win 7 64bits
    Plus j'apprends ... Plus je me sens si loin

  9. #9
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par infofree Voir le message
    j'ai tout mis dans mon form, je voudrais maintenant l'organiser avec des classes et une séparation des couches, mais j'avoue que je ne sais pas comment m'y prendre.
    Je te conseille de lire ce tuto.
    N'oubliez pas le tag et

Discussions similaires

  1. [ODBC] Accès à une base Access avec PHP
    Par FracMaster dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 09/02/2015, 07h05
  2. Accès à une base Access sans ODBC
    Par thierryG dans le forum C++
    Réponses: 0
    Dernier message: 11/07/2008, 14h04
  3. [WD11] Accès à une base Access en SQL
    Par skulled dans le forum WinDev
    Réponses: 3
    Dernier message: 23/07/2007, 13h44
  4. Réponses: 7
    Dernier message: 12/04/2006, 23h19
  5. [MFC] Accès à une base access sur le net
    Par LapinGarou dans le forum MFC
    Réponses: 4
    Dernier message: 21/03/2006, 12h11

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