C # SQLite ne fonctionne pas lorsque j'essaie de publier

I am trying to build a small application that will have an embedded database.For that I used SQLite. The program works fine when I debugg-it in Visual C# 2010 express but when i publish it and try to run it it gives me the following error: Unhandled exception has occured in your application..... strong SQLite Error no such table:

Je ne comprends pas vraiment parce que cela fonctionne bien quand il n'est pas publié .... Toute aide est grandement appréciée Merci

0
Votre application crée-t-elle le fichier de base de données à la volée ou en utilise-t-il une existante?
ajouté l'auteur Idan Arye, source
J'utilise System.Data.SQLite.dll
ajouté l'auteur Tzutzu Suntzutzu, source
Il utilise un existant. J'ai déplacé le dossier dans le dossier de débogage pour la convenance ... J'ai créé ma base de données en utilisant la ligne de commande. Le fichier qui a été créé n'avait aucune extension donc j'ai ajouté .db à celui-ci. Il donnait la même erreur dans l'éditeur jusqu'à ce que je lise sur le forum que j'ai besoin d'ajouter un fichier app.config et cela a fonctionné après cela. Le fichier app.config est le suivant:
ajouté l'auteur Tzutzu Suntzutzu, source
Quelle bibliothèque SQLite utilisez-vous?
ajouté l'auteur flo, source

1 Réponses

SQLite quand il dit qu'il n'y a pas une telle table dans un programme qui fonctionnait bien sur la machine de développement, alors assurez-vous qu'il se connecte à la bonne base de données.

En SQLite s'il ne peut pas trouver la base de données à l'endroit mentionné par le code, il va en créer un là. La taille de ce sera 0 KB. Il va même ouvrir cette base de données. Un problème survient lorsque des données sont extraites de celui-ci.

Ensuite, il donne cette erreur. Utilisez des boîtes de message/débogueur pour vérifier ce qui ne va pas avec votre code.

0
ajouté
Je l'ai! J'étais parce que j'ai utilisé un chemin relatif au lieu d'un absolu ... Cela fonctionne maintenant sur mon ordinateur mais je me demande si cela fonctionnera quand j'essayerai de l'installer sur d'autres ordinateurs ... devrais-je créer manuellement un nouveau dossier? (comme dans mon ordinateur) ... Cela ne devrait-il pas être fait automatiquement ...? Merci à tous pour vos réponses!
ajouté l'auteur Tzutzu Suntzutzu, source
@TzutzuSuntzutzu: Dans le code jamais dur coder les chemins. Utilisez la méthode Directory.GetCurrentDirectory() pour obtenir le dossier dans lequel se trouve l'application. En outre, utilisez Path.Combine pour combiner les chemins.
ajouté l'auteur Nikhil Agrawal, source
Oui, vérifiez si le fichier de base de données est présent et si la chaîne de connexion est correcte. Peut-être n'avez-vous pas inclus le fichier de base de données dans votre paquet d'installation? Ou, peut-être que vous voulez vérifier si le fichier existe avant d'ouvrir la base de données et créer les tables si vous créez un nouveau fichier de base de données?
ajouté l'auteur toby, source