VB.NET - Problème contenu database avec mise à jour Click Once

Squal0 Messages postés 14 Date d'inscription mardi 26 octobre 2010 Statut Membre Dernière intervention 7 juin 2013 - 5 juin 2013 à 19:08
Squal0 Messages postés 14 Date d'inscription mardi 26 octobre 2010 Statut Membre Dernière intervention 7 juin 2013 - 7 juin 2013 à 17:20
Bonjour à tous,

(et désolé par avance du pavé de texte, je préfère en dire trop que pas assez )

Je me trouve face un à problème avec les mises à jour ClickOnce (VS2010) :

Mon programme comporte une base de donnée (SQL), lorsque je publiait une nouvelle version et que l'utilisateur effectuait cette mise à jour il arrivait que le contenu de la base de donnée du programme était remise à zéro. Il perdait donc les données qu'il avait saisi (utilisateur, progression ...)
J'ai pu remarquer par la suite que cela arrivait lorsque je manipulait la base dans Visual Studio (ajout/modif/suppr de requête par exemple) avant de publier, la mise à jour du programme écrasait l'ancienne base de donnée.
Pour essayer d'y remédier, j'ai mis en place un petit système de backup du fichier database.sdf avant la mise à jour et qui le réimporter après la mise à jour effectuée, de manière à ce que l'utilisateur retrouve le contenu qu'il avait ajouté dans la base de donnée.


Jusqu’à maintenant ça fonctionnait bien, mais en voulant modifier la longueur max de caractère pour la colonne d'une table (passer de 100 à 200 caractères max), après avoir fait la mise à jour, l'utilisateur se retrouve avec mon système de sauvegarde qui réimporte la sauvegarde de la base de données avec le nb de caractère non modifié. (ce qui semble logique mais cette manip marchait pour les modif de requêtes ...)
Et si je désactive la sauvegarde, l'utilisateur se retrouve avec sa base de donnée vidée.


Du coup après tout ce blabla, voici quand même ma question :
Est-ce qu'il existe un moyen de comparer, non pas le contenu, mais la structure ou le schéma de la base de donnée avant de faire la mise à jour avec ClickOnce pour faire uniquement la mise à jour pour la modif du nombre de caractères et non pas écraser bêtement le fichier database.sdf ?
Voir même, est-ce qu'il est possible de faire une sorte de patch ou script corrigeant juste ça ?


Je vous remercie par avance de vos aides et d'avoir tout lu

1 réponse

Squal0 Messages postés 14 Date d'inscription mardi 26 octobre 2010 Statut Membre Dernière intervention 7 juin 2013
7 juin 2013 à 17:20
Oula, Oula, pas trop de réponses à la fois, je sais plus où donner de la tête .... ah non y'a pas de réponses

Peut-être que mon explication est pas assez clair ou trop longue. Mais je pense quand même pas être le seul à avoir rencontré ce problème...
Du coup je vais essayer de détailler ma question en plusieurs étapes, ça permettra peut-être d'avoir des morceaux de réponses

- Avez-vous déjà fait un programme avec une base de donnée intégrée ?
- Avez-vous utilisé le système de mise à jour avec ClickOnce ?
- Avez-vous déjà eut le contenu de la base de donnée remit à zéro après avoir fait la mise à jour sur le poste client ?
- Comment faites- vous la publication de mise à jour de votre programme avec une base de donnée (si différent de ClickOnce) ?

N’hésitez pas à me demander si vous avez besoin d'infos (code, détails sur le fonctionnement du programme, ...) pour mieux cerner mon problème.
Parce que ce soucis me gêne pas mal étant donnée que je commence à avoir des personnes qui utilisent mon programme, qui ont donc enregistrés des données dedans et qui vont malheureusement tout perdre ou ne vont plus pouvoir utiliser le programme correctement si je publie la mise à jour.
(Exemple de la mise à jour : passer de 100 à 200 caractères max pour la colonne 'Description' de la table 'Matière' de la base 'Database', afin que l'utilisateur puisse saisir une description plus longue)
0
Rejoignez-nous