WPF App, C#, SQLite: Chemin d'accès relatif pour base de données
Fermé
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
-
25 nov. 2020 à 09:39
Utilisateur anonyme - 30 nov. 2020 à 17:04
Utilisateur anonyme - 30 nov. 2020 à 17:04
A voir également:
- WPF App, C#, SQLite: Chemin d'accès relatif pour base de données
- App data - Guide
- Télécharger sans app store gratuit - Guide
- Instagram app pc - Télécharger - Divers Communication
- Adb app control - Guide
- Ema app pour pc - Télécharger - Mail
9 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
26 nov. 2020 à 09:50
26 nov. 2020 à 09:50
Il se peut également que le répertoire courant de travail soit modifié par ailleurs dans ton application.
Une option serait alors de générer le chemin absolu de la base de données, en t'aidant de
(cf la page suivante : https://stackoverflow.com/questions/837488/how-can-i-get-the-applications-path-in-a-net-console-application )
Une option serait alors de générer le chemin absolu de la base de données, en t'aidant de
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
(cf la page suivante : https://stackoverflow.com/questions/837488/how-can-i-get-the-applications-path-in-a-net-console-application )
Utilisateur anonyme
29 nov. 2020 à 10:16
29 nov. 2020 à 10:16
Bonjour
as tu essayé de construire le chemin complet comme Reivax te l'a proposé?
Si ça n'est pas le cas, je te propose de tester ça
C'est un peu plus rapide à l'exécution que la reflexion.
Attention à bien mettre System.IO.Path, même si tu as un using à System.IO, car en WPF il y a un conflit avec System.Windows.Shapes.Path qui est un contrôle.
Le message d'erreur indique "directory not found" tu peux ajouter
Juste pour voir si le message s'affiche.
Tu peux aussi ajouter
Pour vérifier si le fichier texte est bien écrit, ce qui éliminerait définitivement un problème de droits d'accès.
Il y a une version trial de 30 jours du package sqlite que tu utilises.
Pour faire un test le plus représentatif
as tu essayé de construire le chemin complet comme Reivax te l'a proposé?
Si ça n'est pas le cas, je te propose de tester ça
string dossier = System.AppDomain.CurrentDomain.BaseDirectory; string chemim = System.IO.Path.Combine(dossier, "base.db");
C'est un peu plus rapide à l'exécution que la reflexion.
Attention à bien mettre System.IO.Path, même si tu as un using à System.IO, car en WPF il y a un conflit avec System.Windows.Shapes.Path qui est un contrôle.
Le message d'erreur indique "directory not found" tu peux ajouter
if (!System.IO.Directory.Exists(dossier)) MessageBox.Show("Le dossier n'existe pas");
Juste pour voir si le message s'affiche.
Tu peux aussi ajouter
System.IO.File.WriteAllText(System.IO.Path.Combine(dossier, "test.txt"), "Coucou");
Pour vérifier si le fichier texte est bien écrit, ce qui éliminerait définitivement un problème de droits d'accès.
Il y a une version trial de 30 jours du package sqlite que tu utilises.
Pour faire un test le plus représentatif
- avec quel Visual Studio codes tu(millésime et version {community, pro, entreprise etc....})?
- sur quel OS?
- quelle framework?
- quel est l'OS du PC cible?
- dispose t il de la framework en question?
Utilisateur anonyme
30 nov. 2020 à 12:36
30 nov. 2020 à 12:36
J'ai essayé le codelequel je t'en ai proposé 3 en plus de celui de Xavier.
Et je t'ai posé plusieurs questions, tu n'as répondu à aucune.
Je ne suis pas magicien, sans éléments aucune chance de pouvoir essayer de t'aider.
Par contre, cette fois ci ça n'est pas le même message d'erreur.
Là clairement, il dit que le fichier n'a pas été trouvé.
- option 1, la bdd n'est pas à cet endroit là.
- option 2, la bdd n'est pas du tout sur le pc.
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
3
30 nov. 2020 à 15:48
30 nov. 2020 à 15:48
string dossier = System.AppDomain.CurrentDomain.BaseDirectory; string chemim = System.IO.Path.Combine(dossier, "base.db");
Merci bien... c'est ce code que j'ai utilisé finalement. Pour l'emplacement, la bdd est bien là mais je saurai me débrouiller pour voir le souci avec le setup.
J'utilise Visual studio Community 2019, OS: Windows 7 entreprise, .NET Framework 4.7.2. Le second PC est sous Windows 10 entreprise disposant d'une .NET Framework plus avancée (4.8)
Utilisateur anonyme
>
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
30 nov. 2020 à 17:04
30 nov. 2020 à 17:04
Tu dis (et je te crois) que la bdd est bien à l'emplacement signalé par le message d'erreur.
Pourtant ton message dit clairement le contraire.
Pourtant ton message dit clairement le contraire.
- Normalement W10 ne bloque pas les accès dans AppData, pour le valider de façon définitive as tu essayé d'écrire un fichier text comme je te l'ai proposé?
- Normalement ce qui est codé en C#, avec la framework 4.7 est censé fonctionner en 4.8, mais y'a p'tet une subtilité avec ton outil. En effet, il utilise peut la dll win32 de sqlite. Il y a plusieurs façons de le faire et l'une d'entre elle est de passer par un projet C++ .Net et dans ce cas sur le PC cible il te faut le runtime qui va bien, pour 4.7 c'est le runtine 2107 (x86 ou x64 selon le cas). L'un des ces runtime est il sur ton PC de développement et absent sur l'autre?
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
25 nov. 2020 à 09:53
25 nov. 2020 à 09:53
Bonjour,
Le fichier .db est-il bien copié avec ton application sur les autres PC ?
Xavier
Le fichier .db est-il bien copié avec ton application sur les autres PC ?
Xavier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
3
25 nov. 2020 à 09:54
25 nov. 2020 à 09:54
Oui bien sur.. Tout le projet est copié au fait
Utilisateur anonyme
26 nov. 2020 à 08:07
26 nov. 2020 à 08:07
Bonjour
Y a t il un message d’erreur sur le pc de déploiement?
Si oui peux tu le copier coller?
Y a t il un message d’erreur sur le pc de déploiement?
Si oui peux tu le copier coller?
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
3
26 nov. 2020 à 11:18
26 nov. 2020 à 11:18
Je viens de déboguer l'appli, j'ai l'exception: Devart.Data.SQLiteException: "Unable to open database file"
Impossible de trouver une partie du chemin d'accès..
Impossible de trouver une partie du chemin d'accès..
Utilisateur anonyme
>
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
26 nov. 2020 à 17:48
26 nov. 2020 à 17:48
Bonjour
Je suis étonné de ta réponse, autant
Un message d'erreur est rarement écrit en français, et si c'était le cas, pourquoi une partie du texte est en anglais.
Afin d'être bien raccord avec toi
Je suis étonné de ta réponse, autant
Devart.Data.SQLiteException: "Unable to open database file"pour quoi pas, autant
Impossible de trouver une partie du chemin d'accès..
Un message d'erreur est rarement écrit en français, et si c'était le cas, pourquoi une partie du texte est en anglais.
Afin d'être bien raccord avec toi
Impossible de trouver une partie du chemin d'accès..est bien écrit dans le message d'erreur? Ça n'est pas ton interprétation de
Devart.Data.SQLiteException: "Unable to open database file"?
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
3
>
Utilisateur anonyme
26 nov. 2020 à 17:53
26 nov. 2020 à 17:53
Utilisateur anonyme
>
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
26 nov. 2020 à 18:23
26 nov. 2020 à 18:23
OK, je suppose que la bdd est bien dans ce dossier.
Windows mets parfois des restrictions sur des dossiers du lecteur C.
Peux déplacer le logiciel sur un autre lecteur, ou à défaut dans "Mes Documents" pour réessayer.
Windows mets parfois des restrictions sur des dossiers du lecteur C.
Peux déplacer le logiciel sur un autre lecteur, ou à défaut dans "Mes Documents" pour réessayer.
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
3
>
Utilisateur anonyme
26 nov. 2020 à 18:42
26 nov. 2020 à 18:42
Merci mais c'est à l'emplacement normalement.. je l'ai déplacement sur un autre lecteur mais naz
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
3
26 nov. 2020 à 09:06
26 nov. 2020 à 09:06
Bonjour,
non, il n'y a aucun message erreur...
ça répond à d'autres fonctionnalités sauf seulement s'il faut communiquer avec la base de données..
non, il n'y a aucun message erreur...
ça répond à d'autres fonctionnalités sauf seulement s'il faut communiquer avec la base de données..
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
3
26 nov. 2020 à 11:24
26 nov. 2020 à 11:24
Petit Rappel; voici ce que j'ai dans App.Config jusqu'ici (je me demande s'il n y a quelque chose à y ajouter par hasard):
<configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework, Version=v4.7.2"/></startup> </configuration>
Chris_2_4114
Messages postés
29
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
27 mai 2022
3
30 nov. 2020 à 10:47
30 nov. 2020 à 10:47
Bonjour,
Merci bien.. J'ai essayé le code. Quand je lance le fichier ".exe" du dossier \bin\debug ça marche parfaitement mais quand je publie le projet et je l'installe avec l'exécutable du dossier "publish" ça ne marche pas. dans ce dernier cas le débogage donne l'exception suivante https://img-19.ccm2.net/T9mFjfO3NmEco1KdCcqa2KDL_ZA=/5e79dd82969b4fdb84defcff58073be3/tmp/c.PNG |fancy]
Merci bien.. J'ai essayé le code. Quand je lance le fichier ".exe" du dossier \bin\debug ça marche parfaitement mais quand je publie le projet et je l'installe avec l'exécutable du dossier "publish" ça ne marche pas. dans ce dernier cas le débogage donne l'exception suivante https://img-19.ccm2.net/T9mFjfO3NmEco1KdCcqa2KDL_ZA=/5e79dd82969b4fdb84defcff58073be3/tmp/c.PNG