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 :

Requet Access sous C#, visual studio 2017


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut Requet Access sous C#, visual studio 2017
    Bonjour,
    Auriez vous une idée de comment exécuté une requête Access sous C#, pour pouvoir ensuite affiché le resultat dans une textbox, avec mysql j'y arrive, mais c'est tout simplement impossible avec une bdd access, je ne trouve pas dutout comment faire.
    Donc voici ma connexion.

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OleDbConnection con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:/GestC.mdb");
    con.Open();

    Je suis précise que je suis actuellement en première année de BTS Sio, je suis donc encore novice.
    Merci d'avance !

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Quelle est ta version d'access ?
    As tu essayé avec ce provider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.ACE.OLEDB.12.0
    ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    Le provider et Ok, c'est juste la commande, pour exécuter une requête pour une BDD access que je n'ai pas.
    Enfin sa c'était encore le cas hier; aujourd'hui j'ai trouver qu'il fallait utiliser cette "OleDbCommand" pour pouvoir utiliser une requête, c'est bien ça ?

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    J'en suis à la, mais je ne sais pas si c'est correct

    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
     public partial class Form1 : Form
        {
            private OleDbConnection maConnexion;
            OleDbConnection con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:/GestC.mdb");
     
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {           
     
                OleDbCommand maCommande = new OleDbCommand();
     
                maCommande.Connection = maConnexion;
                maConnexion.Open();
     
                string req = "SELECT Code FROM Article WHERE DateModification LIKE „11/10/2015%“"; ;
                maCommande.Connection = maConnexion;
     
                maCommande.CommandText = req;
     
               //  OleDbDataReader monReader = maCommande.ExecuteReader();

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Tu fais une requête SQL SELECT, tu dois donc utiliser un OledBdataReader reader = command.ExecuteReader()
    Cela va te renvoyer un reader , qui correspond à une table en quelque sorte avec comme en tête les paramètre de ta requête SQL dans l'ordre ou tu les à énoncés.

    Doc microsoft:
    https://docs.microsoft.com/fr-fr/dot...tframework-4.8

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse.
    J'ai adapté le code de cette manière :

    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
    public static void ReadData(string queryString)
            {
                using (OleDbConnection connection = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:/GestC.mdb"))
                {
                    OleDbCommand command = new OleDbCommand(queryString, connection);
     
                    connection.Open();
                    OleDbDataReader reader = command.ExecuteReader(SELECT Nom FROM Article WHERE Code = "0100 - 6103");
     
                    while (reader.Read())
                    {
                        Console.WriteLine(reader[0].ToString());
     
                    }
                    reader.Close();
                }
            }
    Je ne sais pas du tout si j'ai marqué la requête ou il fallait, mais sa n'a pas l'air, de plus j'ai rajouter donc la connexion en Haut, je ne sais pas non plus si ce la est correct

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    RECTIFICATION !

    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
    namespace test3_form
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                string connectionString = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:/GestC.mdb";
     
                string queryString = "SELECT Nom FROM Article WHERE Code = 0100-6103";
                try
                {
                    using (OleDbConnection connection = new OleDbConnection(connectionString))
                    {
                        OleDbCommand command = new OleDbCommand(queryString, connection);
                        connection.Open();
                        OleDbDataReader reader = command.ExecuteReader();
     
                        while (reader.Read())
                        {                       
                            richTextBox1.Text=(reader["Nom"].ToString());
                        }
                        reader.Close();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Failed to connect to data source");
                }
            }
        }
    }
    J'en suis donc a ce stade, la connexion se fait bien, je pense que c'est juste mon "richTextBox1.Text=(reader["Nom"].ToString());" qui est incorrect.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    [QUOTE=BisTaKe;11010438]RECTIFICATION !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    namespace test3_form
    {
     
                string queryString = "SELECT Nom FROM Article WHERE Code = 0100-6103";
     
            }
        }
    }
    Pour moi ça viendrait de ta requête, il faut mettre 0100-6103 entre simple ou double quote, le mieux serait de faire une requête paramétrée comme ça tu es sûr de pas te tromper dans le type de donnée, et si il te venait dans l'idée de faire des concaténations, ça éviterais les injections SQL.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    Des requêtes paramétrées ?

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup, sa fonctionne !

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    Merci pour ton aide.
    L'intérêt de mon programme, est de scanné une bdd d'article.
    Chaque Article possède une propriété DateModification, et dès lors qu'un article est modifié celle-ci change.
    Le but de ce prog est en fait que dès qu'il détecte une DateModification différent depuis le dernier scan, il va alors afficher l'article en question.
    Pour cela il faut donc que ma requête me renvoie a la fois la DateModification mais aussi le Code, propre a chaque Article.
    Dès lors qu'une DateModification a changer, il va alors utiliser le Code en question, pour afficher l'article ainsi que toutes ses propriétés.
    Je vois à peu près comment créer ce scan, comment le concevoir. Le seul soucis en revanche, c'est que pour scanner, il doit lire la bdd et la comparé a quelque choses, j'ai donc penser faire en sorte que a chaque fin de scan, le prog enregistre tout dans un fichier, et c'est justement ce fichier qui sera comparé au prochain scan pour détecté d'éventuel modification.

    Et C'est là que j'ai besoin peut être encore d'un coup de main, je pensais faire en sorte qu'a chaque fois tout soit enregistrer dans une mini-bdd, et lors du scan, donc de la comparaison, cela compare la mini bdd avec l'affichage actuel dans le programme qui serai alors une DataGridView.
    Mais cela me parait être un peu du bricolage, n'y aurait-il pas une autre manière plus simple, plus "propre". En sachant qu'il faut prendre en compte que même si le programme est fermé, à sa réouverture, il doit encore être capable de faire un scan, de pouvoir comparé la bdd actuel a l'ancienne. c'est pour sa que j'ai penser au fait de tout enregistrer a chaque fois dans une mini bdd, et de l'écraser à chaque nouveau scan.

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Je ne suis pas très calé moi non plus en BDD etc...
    Qu'est ce que tu entends par scanner une base de données ? Tu scannes un article non ?

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    En gros j'ai une bdd, avec des article a l'intérieur, chaque article à une propriété DateModification.
    Imaginons que je modifie un article, sa DateModification va changer, et bien quand je vais lancé un scan, c'est a dire que je vais lire ma bdd, je vais comparé ce resultat avec le fichier qui a était lors du dernier scan, et si mon prog détecte qu'une DateModification a changer entre le fichier du dernier scan, et ce qu'il viens juste d'afficher, alors il renvoie l'article en question grâce a son code.

  15. #15
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    Par défaut
    Pourquoi tu ne récupères pas tout simplement les articles dont la date de modification est supérieure à la date du dernier scan ?

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    C'est justement ce que je voudrais faire

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    Savez vous comment importer le contenu d'un bloc note dans une listbox ??

    J'ai ceci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    listBox2.Text = File.ReadAllText(@"C:\Users\utilisateur\Desktop\Test enregistrement\savemodif.txt");

    Aucune erreur mais rien n'est importer, cela fonctionne pour une TextBox, pour une Richtextbox, mais pas pour une listbox :/

  18. #18
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Je ne voudrais pas dire de bétises, mais une listBox contient des Items qui ont deux attributs, text et value, ici tu pourrais convertir chacune de tes ligne en Item qui on pour attribut text la ligne en questions...

    Il faudrait peut être faire une boucle sur les lignes de ton bloc notes.
    Je vois ça comme ça, il y a peut être plus simple...
    Ressource microsoft : https://docs.microsoft.com/fr-fr/dot...tframework-4.8

  19. #19
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach(string line in File.ReadAllLines(@"C:\Users\utilisateur\Desktop\Test enregistrement\savemodif.txt"))
       listbox2.Items.Add(line);
    MSDN

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Juin 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Juin 2019
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    Seriez vous comment enregistrer les résultats d'une requête SQL, dans une collection, qui elle même sera enregistré dans un fichier xml ?

Discussions similaires

  1. Utilisation enVB Access d'une DLL Visual Studio 2017
    Par Sal-Proven dans le forum Visual Studio Team System
    Réponses: 0
    Dernier message: 07/03/2019, 14h40
  2. Composants non installé sous Visual Studio 2017 Pro ?
    Par Monstros Velu dans le forum Visual Studio
    Réponses: 1
    Dernier message: 15/02/2019, 11h01
  3. Réponses: 10
    Dernier message: 02/01/2019, 16h27
  4. DataBase + Access + Visual studio 2017.
    Par WiFEED dans le forum C#
    Réponses: 1
    Dernier message: 02/10/2018, 08h02
  5. Projet en C# sur Xamarin sous Visual Studio 2017
    Par nostra76 dans le forum Android
    Réponses: 3
    Dernier message: 19/04/2017, 21h49

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