1

Ce qui a déjà été fait. J'ai construit une application de formulaire de Windows en utilisant .Net Framework 4.5 et base de données SQL Server Express File (mdf) qui est installé et en cours d'exécution sur les machines client.Comment mettre à niveau la base de données Sql Server Express basée sur un fichier (mdf) pendant l'installation de l'application de bureau

Nouveau Changer la condition? Une nouvelle exigence a été introduite J'ai donc ajouté de nouvelles colonnes dans certaines tables et de nouvelles tables dans la base de données et les ai construites et exécutées sur ma machine locale qui fonctionne correctement.

Qu'est-ce qu'une exigence? Je dois sauvegarder toutes les données de l'application client avec la mise à jour de la base de données que j'ai appliquée lors de l'installation.

Qu'est-ce que j'ai essayé de réaliser cette exigence? Je l'ai essayé avec la configuration d'installation standard, Lorsque j'essaie d'installer de manière standard, il supprime le fichier de données existant et le réinstaller, En raison de laquelle j'ai perdu des données existantes.

Répondre

1

Faites-le dans votre application. Introduire une nouvelle table appelée "Version" et y stocker la version du schéma.

CREATE TABLE Version (VersionNumber int) 

stockons les scripts de mise à jour de SQL dans votre application. Chaque script doit appartenir à un numéro de version.

Vérifiez le numéro de version après le démarrage de l'application et exécutez tous les scripts nécessaires. Après avoir exécuté un script particulier, insérez le numéro de version dans la table.

Si la table Version n'existe pas du tout, créez-la simplement et exécutez tous les scripts.

+0

Merci, mais Qu'en est-il de problème de suppression de base de données existant, lorsque je réinstalle ou mise à niveau de l'application, il supprime les fichiers existants. –

+1

Très simple: stockez le fichier de données dans un emplacement différent. Par exemple "Environment.SpecialFolder.CommonApplicationData" (= C: \ ProgramData - partagé entre utilisateurs). –