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 :

Publier application C# en incluant base de données SQLite, problème de connexion [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut Publier application C# en incluant base de données SQLite, problème de connexion
    Bonjour à tous
    Je suis débutant en C#, j'ai l'habitude d'écrire en PHP, question syntaxe, ça se ressemble un peu... juste un peu
    Je travaille avec Visual Studio

    Mon problème est le suivant:
    J'ai fait un application pour lire des données provenant d'une base de données SQLite, c'est une sorte de recueil de chanson... tout fonctionne en local, c'est à dire sur l'ordi de production.
    Quand je publie (déploiement) mon application avec son fichier setup et que j'essaie mon application sur un autre poste, j'ai mon graphique et tout mais je ne parviens pas à me connecter à la Base de données SQLite; pourtant c’était ok en production.

    1) Comment faire pour publier mon application avec sa base de données, avec la possibilité de lire, éditer, supprimer des enregistrements?
    J'ai créé une ressource "truc" pour la base de données mais après ça bloque.

    J'avais fait un truc en VB.NET qui marchait bien, mais je n'arrive pas à faire en C#

    je faisais ça en VB.NET et ça marchait très bien:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Dim BDDPath$ = Path.GetTempPath & "\base_exemple.db"
            File.WriteAllBytes(BDDPath, My.Resources.truc)
            Dim strConnexion As New SQLiteConnection("Data Source=" & BDDPath)
            Dim myConnexion As SQLiteConnection = New SQLiteConnection(strConnexion)
                myConnexion.Open()
                Dim sql As String = "select ref,titre from table_choses;"
                Dim cmd As New SQLiteCommand(sql, myConnexion)
                Dim myreader As SQLiteDataReader = cmd.ExecuteReader()
                While myreader.Read()
                  ********************
                End While
                myreader.Close()
                myConnexion.Close()



    Comment faire la même chose en C#
    Celà fait quelques jours que je cherche sans succès

    Voici mon code qui ne fonctionne pas après publication

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                        SQLiteConnectionStringBuilder SQLCSB = new SQLiteConnectionStringBuilder();
                        SQLCSB.DataSource = @"C:\Users\Moi\source\repos\projetcsharp2\bases_de_donnees\base_exemple.db"; 
                        string ConnectionString = SQLCSB.ToString();
                        SQLiteConnection SQLC = new SQLiteConnection(ConnectionString);
                        SQLC.Open();
                        SQLiteCommand SQLCmd = SQLC.CreateCommand();
                        SQLCmd.CommandText = "SELECT ref,titre FROM table_choses";
                        SQLiteDataReader SQLDReader = SQLCmd.ExecuteReader();
     
                        while (SQLDReader.Read())
                        {
                        ******************
                        }
                        SQLC.Close();

    Merci d'avance pour votre aide

    David

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

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    Citation Envoyé par tidave971 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLCSB.DataSource = @"C:\Users\Moi\source\repos\projetcsharp2\bases_de_donnees\base_exemple.db";
    J'espère que tu n'as pas réellement ce code dans ton application, sinon ça risque effectivement de poser problème quand tu vas déployer. Le chemin vers ton fichier de base de données doit être relatif à l'application, généralement le nom du fichier suffit s'il est à côté de l'exécutable. Il est possible également de le spécifier dans un fichier de configuration. Si tu as inclus dans ton projet un fichier SQLite configuré avec le schéma de la base de données tu peux mettre la propriété "Copier dans le répertoire de sortie" à "Toujours copier" afin de l'inclure dans le répertoire de publication.

  3. #3
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    salutations
    comment dois je écrire le chemin du fichier?

    j'avoue que j'ai beau chercher je ne trouve rien de probant

    - Si je mets mon fichier de base de données avec mon fichier EX, mon fichier sera visible et accessible par tous ?

    si mon code ne dois pas etre du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQLCSB.DataSource = @"C:\Users\Moi\source\repos\projetcsharp2\bases_de_donnees\base_exemple.db";
    mon code dois être de quelle forme?

    je galère.... mais je suis confiant

    Merci encore

    David

  4. #4
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonjour,

    Les chemins absolus c'est rarement une bonne idée, il te faut utiliser un chemin relatif comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLCSB.DataSource = @"bases_de_donnees\base_exemple.db";
    Si tu ne précises pas de racine, le programme part du principe qu'il faut prendre son répertoire comme base. Du coup même si tu trimbales ton dossier un peu partout, lui saura toujours trouvé les fichiers.

    Si jamais tu veux être sur d'avoir le bon fichier, tu peux récupérer le dossier ou est lancée ton application de différentes manières, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string dossierParent = AppDomain.CurrentDomain.BaseDirectory;

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    ça fonctionnait parce que ta base était située dans Temp sur ton projet VB.
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim BDDPath$ = Path.GetTempPath & "\base_exemple.db"

    En C# c'est le même principe, tu mets ta base au même endroit et seule la syntaxe change.
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    string BDDPath = Path.GetTempPath() + @"\base_exemple.db"

  6. #6
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    Bonjour à tous
    Merci encore pour votre aide

    J'ai comme conseillé,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQLCSB.DataSource = @"bases_de_donnees\base_exemple.db";
    J'ai mis la base de données dans le répertoire debug,
    j'ai rajouté le fichier de la base de données au projet et j'ai choisis l'option de toujours copier dans le répertoire de sortie ...
    sans succès, l'application ne voit toujours pas la base de données

    J'ai voulu utiliser la ressource comme pour en VB mais j'ai des erreurs..



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    string BDDPath = Path.GetTempPath() + @"\base_exemple.db";
    File.WriteAllBytes(BDDPath, My.Resources.hymnes)
     string strConnexion As New SQLiteConnection("Data Source=" & BDDPath)
    J'ai essayé d’adapter mon ancien code mais toujours pas de solution

    1ere erreur : le nom de type As est introuvable (j'ai essayé aussi en minuscule)
    2eme erreur : imposible d'utiliser un membre SQLiteconnexion ne pouvant pas être appelé comme un methode

    Désolé du dérangement

    David

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 30/11/2009, 16h53
  2. Réponses: 4
    Dernier message: 15/05/2009, 13h29
  3. Réponses: 2
    Dernier message: 10/09/2008, 16h04
  4. Plusieurs applications sur une même base de données
    Par ellene dans le forum Hibernate
    Réponses: 8
    Dernier message: 13/11/2007, 10h04
  5. Conseils Application serveur JAVA et base de données.
    Par Neutrino- dans le forum Persistance des données
    Réponses: 7
    Dernier message: 23/01/2007, 12h22

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