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

VB.NET Discussion :

Exporter son application avec une base de données [Débutant]


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut Exporter son application avec une base de données
    Bonjour chère communauté,

    Je suis débutant sur visual studio et particulièrement sur visual basic, j'ai potassé pas mal de forum et la documentation officiel de Microsoft sur ce produit mais néanmoins je suis confronté à un petit problème que je viens vous exposer:

    J'ai un projet windows form qui est connecté à une base de données SQL Server compact 4.0 (dans l'objectif de déployer mon application sur n'importe quels clients Windows).

    Pour la connexion et l'utilisation de la base de données j'ai réussi à m'en sortir sans trop de problème voici un exemple de code qui permet de remplir une comboBox avec des données SQL :

    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
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Dim Connexion As New SqlCeConnection("Data Source=C:\Users\toto\Documents\Visual Studio 2013\Projects\projet\database.sdf")
     
            Connexion.Open()
            Dim requete As String = "SELECT lieu FROM table GROUP BY lieu"
            Dim Commande As New SqlCeCommand(requete, Connexion)
            Dim Adapteur As New SqlCeDataAdapter(Commande)
            Dim MonDataSet As New DataSet
     
            Adapteur.Fill(MonDataSet, "table")
            With Me.CB_lieu
                .DataSource = MonDataSet.Tables("table")
                .ValueMember = "lieu"
                .SelectedIndex = 0
            End With
        End Sub
    Jusque la pas de problème, j’exécute mon programme sur mon PC et je n'ai aucun problème d’exécution.

    Le souci viens du fait que je ne sais pas exporter mon application sur un autre Ordinateur, j'ai toujours une erreur par rapport à l'accès au fichier database.sdf.

    Pouvez vous s'il vous plait m'indiquer comment dois je faire pour exporter mon application sur les autres clients en incluant la base de données SQL ?

    Merci d'avance
    Dernière modification par rv26t ; 18/02/2015 à 18h13. Motif: Pensez à utiliser les balises de code (bouton #)

  2. #2
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,
    Vous utilisez un projet de type "setup" pour le déploiement ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    D'abord merci pour votre réponse,

    Je ne sais pas réellement quelle est la meilleur méthode mais j'aimerai bien que mon application fonctionne sur n'importe quelle poste utilisant Windows,

    Si je dois faire un setup pour installer les dépendances cela ne me dérange pas. (J'ai déjà essayer en publiant mon projet mais sans succès)

    Pour information je travaille sur Visual Studio 2013 community

    Bien cordialement

  4. #4
    Membre du Club Avatar de Adakhum
    Homme Profil pro
    Ingénieur Mécanique Numérique
    Inscrit en
    Mars 2014
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Mécanique Numérique

    Informations forums :
    Inscription : Mars 2014
    Messages : 125
    Points : 58
    Points
    58
    Par défaut
    Salut,

    je dis peut être une bêtise mais si c'est ça ton adresse pour aller chercher ta DB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Data Source=C:\Users\toto\Documents\Visual Studio 2013\Projects\projet\database.sdf"
    C'est normal que tu n'y arrive pas à partir d'un autre PC, ta BDD est sur le C:\ de ton PC ?!

    Il faudrait que tu mettes ta petite DB dans un fichier de "ressources" (certains pourront te l'expliquer mieux que moi), ainsi ton .exe ou autre setup contiendra la DB !
    Détaillez votre question et vous obtiendrez une réponse précise ! (c'est un peu magique)
    Et si vous êtes fou de voyage bienvenue ici : http://lenormanditinerant.blogspot.fr

  5. #5
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Je rejoins adakhum sur le fond des 2 points qu'il a évoqué mais à cela vient s'ajouter une question :

    Ta BDD doit-elle être accessible (R/W) par n'importe quel client ou bien cette BDD sert-elle exclusivement à ton programme et personne d'autre ?

    Dans le 1er cas il faut faire pointer ton DataSource vers un partage de fichiers accessible de n'importe quel client en R/W (C'est dommage pour un admin systèmes et réseaux de ne pas y avoir pensé ).....

    Dans le 2ème cas il faut vraiment que tu évalues le volume des données traitées par ton appli au sein de cette base de manière à voir s'il n'est pas plus judicieux d'utiliser un simple fichier de config .xml.

    La réponse à ces 2 questions nous donnera une orientation plus précise sur ce que tu pourrais mettre place.

    A+

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ma ne sera accessible qu'en lecture par l'application, et le volume des données est maigre.

    Je ne peux pas mettre ma bdd sur un partage réseau car nous sommes amenés a utiliser l'application sur différents réseaux donc il est plus souhaitable que l'application embarque la BDD avec elle.

    Je suis preneur pour la création d'un simple fichier XML mais également pour résoudre le problème de la bdd, il est fort probable qu'a l'avenir je développe des applications beaucoup plus conséquentes (surtout en termes de volume data).

    Bien cordialement

  7. #7
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Si ta BDD est mince (un squelette de lancement du programme) alors tu peux l'ajouter dans les ressources de ton projet comme suit :

    1- Rends-toi dans les propriétés de ton projet puis cliques sur l'onglet "resources" (dans le volet de gauche) sélectionnes "Fichiers" (partie supérieure centrale).



    2- Enfin cliques sur "Ajouter une resource", tu parcours ton disque dur à la recherche du fichier ".sdf" (ta BDD) :



    NB : penses bien à modifier le filtre "Tous les fichiers"

    NB : Ton fichier BDD.sdf de type Byte() est accessible ainsi depuis ton projet :
    3- Lorsque tu veux accéder à ta BDD depuis ton projet il faut copier la BDD en local (dans répertoire Temp par exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim BDDPath$ = Path.GetTempPath & "\BDDTmp.sdf"
    File.WriteAllBytes(BDDPath,My.resources.BDD_SDF)
    A+

  8. #8
    Invité
    Invité(e)
    Par défaut
    JE te remercie pour ces informations fortes utiles, donc si je comprends bien je dois toujours me balader avec mon application et ma bdd et lorsque je veux acceder a ma bdd je devrais copier celle-ci dans le repertoire temp ?

    Ma question est la suivante est ce qu'il est pas possible de l'empacter dans un setup ou un exe ? (De même pour le fichiers xml ?)

  9. #9
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par HackerCrawl Voir le message
    JE te remercie pour ces informations fortes utiles, donc si je comprends bien je dois toujours me balader avec mon application et ma bdd et lorsque je veux acceder a ma bdd je devrais copier celle-ci dans le repertoire temp ?

    Ma question est la suivante est ce qu'il est pas possible de l'empacter dans un setup ou un exe ? (De même pour le fichiers xml ?)
    Lorsque tu ajoutes un fichier .xml, .txt, .jpg, .sdf,....etc.... dans les ressources de ton projet alors à la compilation ces fichiers font désormais partie de ton .exe que tu pourras livrer au client !

    As-tu seulement essayés de suivre la procédure plus haut pour voir le résultat ??? auquel cas tu poseras d'autres questions et tu pourras te rendre compte si ca te convient ou non mais au vue des explications et réponses que tu nous as donnés cette solution semble viable à appliquer.

    A+

  10. #10
    Invité
    Invité(e)
    Par défaut
    Je n'ai pas encore testé, je vais essayer sa ce soir et je vous ferez un retour demain.

    En tout cas je te remercie grandement pour tes explications.

    Bien cordialement

  11. #11
    Invité
    Invité(e)
    Par défaut
    Je viens de tester ta solution,

    J'obtiens toujours la même erreur, lorsque je publie mon application il ne retrouve toujours pas la base de données, il en est de même si j'utilise l'exe dans le répertoire Bin/ du projet.

    Pouvez vous m'indiquer la bonne méthode pour publier mon application ?

    Merci

  12. #12
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par HackerCrawl Voir le message
    Je viens de tester ta solution,

    J'obtiens toujours la même erreur, lorsque je publie mon application il ne retrouve toujours pas la base de données, il en est de même si j'utilise l'exe dans le répertoire Bin/ du projet.

    Pouvez vous m'indiquer la bonne méthode pour publier mon application ?

    Merci
    Est-ce que tu as au moins fais pointer ton Datasource dynamiquement depuis ton 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
    17
    18
    19
    20
    21
    22
    23
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            'AJOUTER CELA (ne copie pas bêtement car le nom de ta ressource dépends du nom original de ta BDD, utilises l'autocomplétion et ca te proposera la resource en question !) :
            Dim BDDPath$ = Path.GetTempPath & "\BDDTmp.sdf"
            File.WriteAllBytes(BDDPath,My.resources.BDD_SDF)
            Dim Connexion As New SqlCeConnection("Data Source=" & BDDPath)
     
            ' SUPPRIMER CELA :
            'Dim Connexion As New SqlCeConnection("Data Source=C:\Users\toto\Documents\Visual Studio 2013\Projects\projet\database.sdf")
     
     
            Connexion.Open()
            Dim requete As String = "SELECT lieu FROM table GROUP BY lieu"
            Dim Commande As New SqlCeCommand(requete, Connexion)
            Dim Adapteur As New SqlCeDataAdapter(Commande)
            Dim MonDataSet As New DataSet
     
            Adapteur.Fill(MonDataSet, "table")
            With Me.CB_lieu
                .DataSource = MonDataSet.Tables("table")
                .ValueMember = "lieu"
                .SelectedIndex = 0
            End With
        End Sub
    Ça devrait mieux fonctionner ainsi ...... ce n'est pas de la programmation mais de la logique puisque tout le code est bien présent sur cette page depuis ma dernière intervention !

    Quant à savoir quel exe tu dois livrer à tes clients il faut savoir si tu compiles dans .../Bin/Release ou ..../Bin/Debug depuis les propriétés de ton projet.

    Bon courage pour la suite

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai essayé ce que tu m'as indiqué hier et je te remercie car cela fonctionne très très bien

    Il me manque plus qu'un détails pour finir mon application mais je reviendrai vers vous si j'ai des soucis.

    Merci encore pour ces réponses fort claires et précises.

    Bien cordialement

  14. #14
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par HackerCrawl Voir le message
    Bonjour,

    J'ai essayé ce que tu m'as indiqué hier et je te remercie car cela fonctionne très très bien

    Il me manque plus qu'un détails pour finir mon application mais je reviendrai vers vous si j'ai des soucis.

    Merci encore pour ces réponses fort claires et précises.

    Bien cordialement
    Pas de quoi ...
    1 problème = 1 topic ! Donc tu peux dors et déjà passer ce topic en "résolu".
    Passer un topic en résolu permet à d'autres personnes de trouver leur réponses en un seul coup d'oeil !

    A+

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

Discussions similaires

  1. [VB.NET] application avec une base de donnée - quelles options ?
    Par wabdev dans le forum Débuter
    Réponses: 2
    Dernier message: 28/03/2012, 23h03
  2. Réponses: 12
    Dernier message: 30/11/2009, 16h53
  3. Synchroniser une application avec une base de données centrale
    Par Sayrus dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 25/08/2009, 20h22
  4. Quel type d'application pour intéragir avec une base de données ?
    Par pontus21 dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 23/08/2008, 20h08
  5. Une application avec une base de données
    Par nabil148911 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/03/2008, 11h21

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