cs_lamiae2
Messages postés50Date d'inscriptiondimanche 2 décembre 2007StatutMembreDernière intervention22 avril 2009
-
8 mai 2008 à 12:33
cs_lamiae2
Messages postés50Date d'inscriptiondimanche 2 décembre 2007StatutMembreDernière intervention22 avril 2009
-
8 mai 2008 à 22:02
j'ai un problème l'hors de suppression d'un fichier .sdf, le message d'erreur est le suivant:"Le processus ne peut pas accéder au fichier car il est utilisé par un autre processus."
j'ai essaiyé avec le code suivant mais le message reste le même:
SqlCeConnection connexion =
new
SqlCeConnection(
"Data source =data.sdf");
if (connexion.State !=
ConnectionState.Closed){
connexion.Close();
File.Delete(
"oms.sdf");}
si quelqu'un à une idée n'hésitez pas à m'aider et merci d'avance.
Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
cs_lamiae2
Messages postés50Date d'inscriptiondimanche 2 décembre 2007StatutMembreDernière intervention22 avril 2009 8 mai 2008 à 13:32
j'ai essaiyé pas mal de fois mais le message reste le même:"Le processus ne peut pas accéder au fichier '\data.sdf', car il est utilisé par un autre processus".j'ai vérifier la connexion à la base de données je trouve qu'elle déja fermée!!
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 8 mai 2008 à 16:37
Les handle de fichiers sont des objets non managés et je pense que c'est ce qui créé l'erreur: le handle en question doit toujours être en mémoire. Essaye de forcer le GarbageCollector.
GC.Collect()
ou
GC.SuppressFinalize(connexion);
GC.WaitForPendingFinalizers();
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 8 mai 2008 à 20:35
Hum c'est assez ennuyeux car il se trouve que je devais implémenter une suppression de bdd sdf et que je suis exactement dans le même cas que toi. Si tu trouve la solution, je suis preneur.
Normal que ce ne soit pas les mêmes fichiers ?
D'un autre côté avec le code donné, la suppression de fichier n'est même pas tentée car la connexion n'est pas ouverte.
Et sinon le Close aurait dû suffire, j'en déduit donc qu'il est possible qu'une autre connexion soit déjà ouverte sur la base de donnée en question, ce qui empêche du coupla suppression du fichier.
bubbathemaster : si on parle d'un handle non managé, le forçage du GC (on évite ce genre de choses, merci) ne servira à rien si la fermeture n'a pas été codée dans le finaliseur, et comme de toute façon tu as justement supprimer les finaliseurs...