Partage
  • Partager sur Facebook
  • Partager sur Twitter

Visual Studio ne reconnait pas ma Base de donné

Sujet résolu
    16 octobre 2020 à 11:11:37

    Bonjour tout le monde,

    Je suis entrain de faire un petit exercice de programmation afin de m’entraîner.

    Cet exercice est inspiré du tuto « Créez votre première application connectée en C# / .NET » sur OpencCassRoom.

    Mon but est de créer une petite application pour gérer des listes de course. J'ai créé une fenêtre où il y a trois partir principale diviser en deux : Pour entrer des articles (élément de la liste de course) j’utilise la seconde partie, pour gérer la liste finale j'utilise la troisième partie et la première partie me sert pour gérer les articles dans une base de donnée afin de ne pas être obligé d'entrer les articles à chaque fois. Je précise que mon programme n'est pas tout à fais terminer donc c'est pour cela la première partir n'est encore bien coupé en deux. Néanmoins, A ce stade il devrait être exécutable.

    Or quand je l’exécute il plante.

    Voici le lien où se trouve le code source de ce programme tout le dossiers exoCourse qui est dans ProgrammeCourse est prêt à être utiliser par Visual studio 2019 :

    https://drive.google.com/drive/folders/16yNB4Q5qAVeUOKTq87fVMvS-eEGXhcCq?usp=sharing

    Quand j'utilise le dégogeur voici les erreur qu'il me renvoie :

    System.ArgumentException : 'The ADO.NET provider with invariant name 'System.Data.EntityCourse' is either not registered in the machine or application config file, or could not be loaded. See the inner exception for details.'

    ArgumentException : Le fournisseur de données .Net Framework demandé est introuvable. Il n'est peut-être pas installé.


    Il ne reconnaît pas la base donné ou du moins il ne la trouve pas.

    Apparemment, c'est ce morceaux de code qui est dans le constructeur qui pose problème :

    foreach (var course in entities.Course)
    
    {
    
    FicheSelectionneeData = new CourseBase()
    
    {
    
    Article = course.Article
    
    
    };
    
    FichesData.Add(FicheSelectionneeData);
    
    
    }


    Ce codes sert à initialiser ma première parti de ma fenêtre.

    J'ai fait des recherches internet mais j'ai rien trouvé d'utilisable c'est pour cela que je vous soumets ce problème.

    Je vous remercie par avance pour votre aide.

    Je vous souhaite une très bonne journée ansi qu'un bon week-end.

    Bien cordialement.

    Aclanto

    -
    Edité par aclanto 17 octobre 2020 à 21:09:59

    • Partager sur Facebook
    • Partager sur Twitter
      16 octobre 2020 à 11:56:34

      Le message d'erreur est plutôt explicite, votre chaîne de connexion indique un SQL Server Express sur la machine hôte et vous n'avez vraisemblablement pas installé SQL Server Express sur la machine.

      Je crois que c'est compris dans l'un des "workload" de VS.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        17 octobre 2020 à 21:08:23

        Bonsoir Tout le monde,

        Bacelar, je te remercie pour ton message.

        Je bien installé SQL Server Express mais comme mon PC date un peu SQL Server Express refuse de fonctionner. Je prévois de toute façon de changer de PC.

        Cependant ce que je ne comprend pas car quand je travaille avec « entities Framework » et donc avec une base de donnée sur un projet Console et même sur un projet WCF cela fonctionne mais quand je travaille simplement sur un projet WPF cela ne fonctionne plus.

        En plus j'ai passé des heures à comparer les fichiers des projets qui ne fonctionnent pas avec ceux qui fonctionnent, j'ai notamment regardé les fichiers de configuration « App.config et App.xaml » ; tout concorde l’erreur en question ne devrait pas exister car la base donnée est là ainsi que tout ceux qui permet d'en faire le lien.

        En changent de PC, j’espère résoudre mon problème en adoptant ta solution Bacelar.

        Bacelar, je te remercie encore pour ta réponse et pour ton aide. Je te souhaite une très bonne soirée ainsi qu'un très bon week-end.

        Je souhaite également à toutes et à tous une très bonne soirée ainsi qu'un très bon week-end.

        Bien cordialement.

        Aclanto

        • Partager sur Facebook
        • Partager sur Twitter
          19 octobre 2020 à 11:25:57

          >mais comme mon PC date un peu

          Ce genre de problème n'est pas dû à "l'âge" d'une machine.

          C'est bien plus souvent lié à un problème de configuration de la machine :

          - mauvaise installation à la base

          - installations ultérieures qui "cassent" se qui est déjà installé

          - ect...

          Donc, si vous installez les mêmes outils, de la même manière sur votre nouvelle configuration, avec un peu de chance, vous aurez les mêmes problèmes (et c'est une chance, car vous pourrez régler le "vrai" problème original, quand même, et que vous avec une configuration de développement qui n'a pas été faite "au pif").

          La différence de comportement entre les projets "console/WCF" et les projets "WPF" peuvent très bien s'expliquer par des versions de framework .NET cible différentes entre ces types de projets et que le connecteur ADO.NET/Entity Framework -> SQL Server soit installé pour une version du framework .NET et pas pour une autres.

          Il y a beaucoup de chose qui ne sont pas dans le code source.

          Le plus simple, ça serait de regarder dans la fenêtre "Sortie" les traces de chargement des composants entre les projets qui fonctionnent et ceux qui ne fonctionnent pas pour voir leurs différences.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            20 octobre 2020 à 20:42:07

            Bonsoir Tout le monde,

            Bacelar, je vous remercie pour votre message.

            Par rapport, à Mysql Server Express, il ne fonctionnait pas car j'ai en windows 7 il faut au minimum windows 10. Par contre j'ai pu installer Mysql Mysql Server Express 2014 qui fonctionne avec windows 7.

            Cependant mon problème que j'ai réussi à résoudre ne venait pas d'absence de Mysql Server Express.

            Pour créer ce projet je suis partir d'un autre projet et le nom du namespace ne correspondait plus. Il a fallut que je fasse à attention à mettre le même nom de namespace dans tout les fichiers où il le fallait ; y compris dans les fichiers de configuration.

            En plus dans mon ancien projet, j’avais une classe « Client » que j'ai remplacé mon projet actuel par la classe « Course » et j'ai donc aussi remplacer dans les fichiers le mot client par course ; ce qui a causé un souci car dans App.config : Il y avait des attributs qui avait la valeur « System.Data.SqlClient » et cette valeur a été remplacé par « System.Data.SqlCourse » or cette valeur fait partie du code auto-généré et il faillait que ces attributs gardent toujours la valeur « System.Data.SqlClient » même dans mon nouveau programme sinon ce dernier arrive pas trouvé la base de donné SQL.

            Donc il faudrait je trouve moyen de faire des versions différentes d'un programme plus proprement.

            Cela fera très certainement l'objet d'un autre sujet de ma part.

            J'avais fais aussi une autre erreur : j'ai oublié d'instancier la variable « FichesData »dans le fichier « FicheCourseViewModel.cs ».

            Merci encore, Becelar, votre conseil de regarder la fenêtre « Sortie » m'a permis de corriger ces erreurs.

            Je souhaite à toutes et à tous une très bonne soirée.

            Bien cordialement.

            Aclanto

            -
            Edité par aclanto 20 octobre 2020 à 21:12:19

            • Partager sur Facebook
            • Partager sur Twitter
              20 octobre 2020 à 21:16:12

              >Mysql Server Express

              Je n'ai jamais parlé de MySQL, mais de "SQL Server Express".

              Il est généralement fournit avec Visual Studio et est compatible avec les mêmes plateformes que le Visual Studio associé.

              Je sais pas ce que vous avez foutu avec votre "Renommage" mais Visual Studio dispose de tout ce qu'il faut en termes d'outils de Refactoring pour changer correctement et facilement le nom d'une Classe ou d'un Namespace. Les "Find and Replace" dans les fichiers source, c'est d'un autre temps (~1980-1990, les outils de refactoring de ce type, c'est avant l'IDE Eclipse).

              Si vous utilisez des outils comme un ORM, tel que Entity Framework, c'est eux qui s'occupent de la création de la DAL directement depuis le nom des tables, des colonnes, etc..

              >votre conseil de regarder la fenêtre « Sortie » m'a permis de corriger ces erreurs.

              Oui, c'est clairement une "fonctionnalité" à connaitre.

              -
              Edité par bacelar 20 octobre 2020 à 21:16:31

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

              Visual Studio ne reconnait pas ma Base de donné

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown