2013-04-17 2 views
2

C'est probablement une erreur stupide de ma part .. mais je n'arrive pas à le comprendre. J'ai créé une nouvelle application Windows Forms C# vide.Les inserts de base de données locaux ne sont pas stockés

J'ai ajouté une base de données (basée sur un jeu de données) et ai le fichier stocké dans mon explorateur de solution. J'ai ajouté une table Test avec la colonne Name.

ajouter un enregistrement à l'aide new SqlCeCommand("insert into Test values('Name')", new SqlCeConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)).ExecuteNonQuery();

Cependant, j'ai même essayé de récupérer les mêmes données et tout fonctionne parfaitement.

Mais quand j'arrête mon projet et que je le reconstruis ... toutes les données ont disparu?

est-il un moyen de résoudre ce problème, ou ce que cela se fixer quand je vais commencer à utiliser ce projet pour ce qu'il est prévu (sans les 500 reconstructions par jour?)

Répondre

0

La réponse donnée par steve permet de continuer à copier la base de données sur celle existante, ce qui entraîne la suppression de toutes les données.

J'ai réussi à résoudre ce problème en mettant "Copy Always" sur, puis dans l'explorateur déplacer la base de données à un emplacement différent et l'ajouter au projet. De cette façon, la base de données ne sera jamais écrasée et peut être utilisée dans le programme!

(Cependant, cela va probablement soulever un problème si/quand je publierai le projet à un autre ordinateur)

4

Votre fichier de base de données est répertorié dans la projet avec cette propriété

Copy to destination directory = Copy Always 

Si cela est vrai, chaque fois que vous redémarrez le projet une nouvelle (vide) copie du fichier de base de données est copié à partir du répertoire du projet dans le répertoire de sortie (BIN \ DEBUG ou BIN \ RELEASE) en écrasant le fichier de base de données utilisé lors de la précédente exécution. Vous pouvez éviter que cette propriété ne soit remplacée par Copy Never ou Copy if newer

+0

Si je le mets sur « Copier jamais », il me donne un « fichier non trouvé erreur ». Copiez si Newer ne change rien. –

+0

Pourriez-vous montrer la chaîne de connexion utilisée? – Steve

+0

connectionString = "Source de données = | DataDirectory | \ Data \ Database \ Test.sdf" - Ceci est \ Data \ Database \ Test.sdf se trouve également dans mon bin/debug dir –

Questions connexes