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

  1. #1
    Nouveau Candidat au Club
    Programme exportation de l'application visual studio C# avec BDD
    Bonjour,


    Svp ! je viens de terminé la programme d'un petit programme windows sous visual studio 2019 en C# en le reliant avec sql server management studio 18 pour la base de donnée, maintenant que j'ai terminé j'ai exporté mon application en exe (setup), mais le base de donnée veut pas s’exécuter avec le programme, au moment d'essayer de me connecter il m'affiche une erreur a cause de la BDD
    Comment faire svp ? j'attends vos réponses

  2. #2
    Expert éminent
    Bonjour,
    SqlServer Management Studio (SSMS) n'est pas une base de données, mais une application qui permet de gérer une base SqlServer.
    Donc ton application se connecte à une base de données, qui elle est gérée avec SSMS.

    Tu as généré ton application dans Visual Studio ton exe), mais cette application ne contient aucune base de données.
    Il te faut donc une base de données SqlServeur (express si tu n'as pas de licence) à la quelle ton application va se connecter.
    Cette base de données ne se lance pas avec ton exe, mais dans une instance SqlServer.
    Si tu n'as pas créé de base de données pour ton exe dans SSMS, il est tout à fait normal que ton application ne puisse s'y connecter.
    Si tu ne sais pas faire, il y a une section dédiée dans ce forum.

    Si tu as déjà une base de données "de production", et que ton application n'arrive pas à s'y connecter, on ne pourra pas t'aider tant qu'on n'en sait pas plus:
    Quel est le message d'erreur ?
    Est-ce que la chaine de connexion est en dur dans le code, ou dans le fichier de configuration ?
    Dans le deuxième cas, est-ce que le fichier existe ? Est-ce que la chaine de connexion est correcte ?
    Est-ce que la base de données est démarrée ? Est-ce que tu arrives à lancer une requête sur cette base dans SSMS ?

    Tatayo.

  3. #3
    Nouveau Candidat au Club
    Suite
    TOut d'abord merci beaucoup pour ces éclaircissements !

    oui je crois que mon executable n'est pas lié à ma base de donnée, je vais suivre le lien que tu m'a donné pour essayer de comprendre comment sa fonctionne voici quelque information comment j'ai fais :

    - J'ai crée la base de donnée + les tables dans SSMS
    - Ensuite j'ai crée mon projet visual studio win form et j'ai ajouté un élément ado.net entity data model
    - J'ai relié le tout et voila le tour est joué, après au moment d’exécuter le programme dans un autre pc sa marche pas, j'arrive pas a me connecter à la base de donnée

    merci beaucoup excellente journée

  4. #4
    Expert éminent
    Quel est le message d'erreur complet ?
    Est-ce que la base est sur un serveur ? Est-ce que ce serveur est accessible depuis la deuxième machine ?
    Où se trouve la chaine de connexion ? En dur dans le code, dans un fichier de config ?
    Dans le deuxième cas, est-ce le fichier en question est bien présent sur la deuxième machine ?
    Est-ce que la chaine de connexion est la même sur les deux machines ?
    Est-ce que les deux machines utilisent le même utilisateur pour se connecter à la base ?
    Dans le cas contraire, est-ce que le deuxième utilisateur a les droits nécessaires sur la base ?

    Il faut nous donner un maximum d'éléments, sinon tu auras plus de question que de réponses.

    Tatayo.

  5. #5
    Nouveau Candidat au Club
    Perdu
    bonjour

    Je vais pas te mentir mais je suis un peu perdu la, bah la base de donnée est dans mon pc, la connexion à la base de donnée est via visual studio bdstockcontext bd = new bdstockcontext bd(), j'ai suivi un tuto enfaite :

    PS : j'ai suivi le tuto à la lettre, dans la deuxième partie il a crée la base de donnée et table dans ssms avec des requetes sql basique de genre create table into ..., ensuite dans la troisième partie qui dure que 6 min, il intègre la base de donnée dans visual studio et dans notre application

    malheureusement la fin de tuto est incomplète, du coup je suis perdu un peux et j'arrive plus a compiler correctement ! (je suis débutant en C#)

    merci

  6. #6
    Expert éminent
    On va prendre les choses dans l'ordre.
    Est-ce qu'il s'agit d'une application multi-utilisateur, c'est à dire est-ce que plusieurs personnes se connectent à la même base de données ?

    Tatayo.

  7. #7
    Nouveau Candidat au Club
    Suite
    Merci beaucoup pour tes réponses, c'est trop gentil de ta part,

    Pour accéder au logiciel on doit d'abord se connecter, ensuite on aura accès au menu de l'application ainsi on peut voir ajouter supprimer ect... les produits !

    L'accès à la base de donnée n'est accessible que dans le pc où l'application est installée, donc chaque pc aura sa base de donnée crée dans son pc, c'est hors ligne, j’espère que tu as compris ce que je voulais dire

    pour te répondre une seule plusieurs personnes peuvent se connecter tant que c'est des pc relié entre eux en réseau local (dans la même piece) (le même bureau)

  8. #8
    Expert éminent
    Si chaque PC a sa propre base (rien de ce qui est saisie sur un PC n'est visible sur un autre), il faut une base par PC.
    Il faut donc créer une base de données en local sur chaque machine, donc installer SqlServer sur chacune (par exemple la version Express qui est gratuite).

    Si deux PC partagent les mêmes données (dans le même bureau, dans le même immeuble, sur la même planète, peut importe), alors la base est partagée et doit être installée sur un serveur.

    Pour ce qui est de la connexion, elle doit normalement être dans le fichier de configuration: app.config en version de test (celle que tu lances dans Visual Studio), et xxx.config pour la version de "production", où xxx représente le nom de l'exe.
    Exemple:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <connectionStrings>
        <add name="BDD" connectionString="Dsn=MyBDD;Uid=MyUser;Pwd=MonPsw;MARS_Connection=yes" />
      </connectionStrings>

    J'ai volontairement zappé le reste, le fichier peut être bien plus gros.
    Tu peux y voir à quelle source de données (ODBC) mon application doit se connecter.
    Tu dois avoir une section équivalente dans ton fichier de config.
    Je n'ai pas d'exemple complet avec Entity FrameWork et SqlServer, les seuls que j'ai se connectent à une base Oracle.

    Mais tu as déjà un début de piste (BDD et connexion).

    Tatayo.

  9. #9
    Nouveau Candidat au Club
    suite
    Bonsoir

    STP ! comme tu t'es connais trop bien en domaine, tu me conseilles de faire quoi stp ?

    Genre pour que chaque pc aura sa propre base de donnée, tu me conseilles d'utiliser quoi dans visual studio pour enregistrer mes données ? un tuto peut être a me proposer ?

    Cordialement

  10. #10
    Expert éminent
    Comme je l'ai dit plus haut, sur chaque machine:
    • Tu installes SqlServer Express
    • Tu crées la base de données
    • Tu paramètres l'application pour qu'elle s'y connecte


    Le point 2 est expliqué dans la vidéo numéro 3. Mais tu peux aussi faire un export du schéma de la base "de test", et l'utiliser pour créer le schéma sur chaque chaque poste.
    Je te laisser regarder dans les tutos/l'aide en ligne de SqlServer, ce n'est pas compliqué.
    Pour le dernier point, toujours dans cette vidéo il explique bien que les paramètres de connexion sont dans le fichier app.config.
    Il faut donc les modifier sur chaque poste, pour qu'ils correspondent à l'instance qui s'y trouve.
    Regarde dans les postes précédents, je t'ai expliquer quoi chercher et où.

    VS permet certainement de créer un programme d'installation, mais comme je n'en ai jamais eu besoin je n'en sais pas plus. Mais si c'est le cas toute la démarche est expliquée dans l'aide en ligne.

    Visual Studio sert à créer une application, pas à l'utiliser. Donc tu n'as rien de plus à faire dans VS que ce qui est expliqué dans l'application.

    Tatayo.

  11. #11
    Nouveau Candidat au Club
    Bonjour

    d'accord et merci beaucoup pour votre temps précieux <3

    Cordialement

  12. #12
    Nouveau Candidat au Club
    Solution
    Voila donc pour ceux qui sont intéressé est dans le même problème que moi, donc voici la solution :

    Vous crée votre formulaire normal, vous ajouter un nouveau élémeent database basée sur le service, vous crée vos tables ensuite vous ajouter un nouveau élement ado.net et vous charger votre table

    une fois le tout est fait vous deconnecter votre base de donnée dans l'explorateur de BD sur visual studio ensuite vous appelez votre base de donnée grâce a ce code

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    using (var BDD = new NomDeLaBasedeDonéeEntitie())
    {
     
    // on affiche le tout comme ça : 
     
    foreach(var i in bdd.table)
     
    label.text = bdd.quelquechose; // voila
     
    }