Bonjour,

Je suis en train de terminer une appli. réalisée en winform sous C#, je suis sur le chapitre sauvegarde / restauration d'une BDD qui est sous SQL Serveur.

Tout marche bien pour cette partie en termes de fonctionnalités basiques (cad sauvegarde/restauration). Je voudrais maintenant sécuriser encore plus les sauvegardes et restaurations en gérant les versions de BDD par rapport du logiciel qui utilise cette BDD. Le plus simple est de donner un exemple :

1. Au début tout va bien, version 1 de l'appli et sauvegarde/restauration de la même version de BDD
Appli version 1.0 <----> Sauvegarde / Restauration BDD version 1.0

2. Puis on passe à une version 2.0. Le client oubli de faire ses sauvegardes dans la nouvelle version. Un jour tout plante, il installe la dernière version de l'application et essaye de restaurer une ancienne version de la BDD.

Appli version 2.0 <----- Restauration version 1.0 possible avec exécution après d'un script qui ajoutera les nouveaux champs dans la BDD récupérée

3. On a un autre client qui a eu aussi des soucis avec son pc. Il ne retrouve plus la version 2.0 de son appli et cherche à restaurer tout de même une version 2 de la BDD.

Appli version 1.0 <----- Restauration version 2.0 impossible. Affichage d'un message d'erreur demandant au client de passer en version 2 pour pouvoir restaurer la BDD

LA question : Tout ça pour dire que l'on doit gérer les versions de BDD et je voudrais savoir comment vous me conseiller de procéder ?

Je suis parti sur le principe que je peux mettre une table dans la BDD et indiquer la version et que je devrais lire cette table pour savoir si je peux où non faire la restauration de ma BDD. Est-ce que je pars dans la bonne direction ?

LA deuxième question (objet de ce message en fait) : Si je pars dans la bonne direction, ma question est la suivante : Comment lire le contenu d'une table à partir d'un fichier de type masauvegarde.bak ?

Je suis ouvert à toute suggestion, et je remercie par avance ceux qui auront le courage de tout lire et surtout de me donner des conseils pertinents.