Déconnection complète SQLITE

- - Dernière réponse : Whismeril
Messages postés
12426
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 décembre 2018
- 24 janv. 2018 à 10:57
Bonjour,
Je des difficultés à faire exécuter :

sub ....()
............
connSqlite.close()
System.IO.File.Move(old_Chemin_de_mon_fichier_sqlite, new_Chemin_de_mon_fichier_sqlite)
.....................
end sub

car VB NET 2017 me dit que la connexion avec ma BD SQLITE n'est pas complètement fermée "Le processus ne peut accéder au fichier car il est utilisé par un autre processus"

Merci de l'aide


NB : Mon module de connexion:
Module ModuleSQLite
Public Database As String = FichierFSL
Public connSqlite As New SQLiteConnection
Public strSQL As String = ""
Public cmd = New SQLiteCommand()
Public reader As SQLiteDataReader

Public Sub OpenDataBase()
Try
connSqlite.ConnectionString = "Data Source=" & Database
connSqlite.Open()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Module
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
41
Date d'inscription
mardi 17 mai 2005
Dernière intervention
24 janvier 2018
1
Merci
EUREKA !

J'ai trouvé une solution :

              
connSqlite.Close()
GC.Collect()
GC.WaitForPendingFinalizers()
System.IO.File.Move(old_Chemin_de_mon_fichier_sqlite, new_Chemin_de_mon_fichier_sqlite)


Pour explications précices :
https://stackoverflow.com/questions/8511901/system-data-sqlite-close-not-releasing-database-file

Bonne journée à tous,

Jean-paul

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 106 internautes nous ont dit merci ce mois-ci

Whismeril
Messages postés
12426
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 décembre 2018
-
Bonjour,
C’est bien de donner la solution, tu peux marquer le sujet résolu aussi.

Et si la prochaine, tu fais l’effort de préciser le langage dans la coloration syntaxique ce sera super, je sais j’insite mais du noir sur fond gris, c’est aussi ilissible que rien du tout...
Regarde le bout de code que j’ai posté, les commentaires sont en vert, les parenthèses et les points en rose (bon c’est pas forcément heureux, mais au moins ça ressort), les string en rouge, etc et il y a les numeros de ligne.
Je te remets le lien vers la procédure
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Il faut lire le A noter:...
Commenter la réponse de jpmaton
Messages postés
12426
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 décembre 2018
0
Merci
Bonjour
je ne connais pas sqlite, mais là https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx
Je vois que c'est une classe disposable, donc tu peux essayer de disposer.

sub ....() 
   '............ 
   connSqlite.close() 
   connSqlite.Dispose()
   System.IO.File.Move(old_Chemin_de_mon_fichier_sqlite, new_Chemin_de_mon_fichier_sqlite) 
   '..................... 
end sub 



Pour tes prochains messages, merci d'utiliser la coloration syntaxique en précisant le langage, c'est plus motivant à lire pour les bénévoles que nous sommes. Voir la procédure
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Commenter la réponse de Whismeril
Messages postés
41
Date d'inscription
mardi 17 mai 2005
Dernière intervention
24 janvier 2018
0
Merci
Bonsoir,

Étant dans un forum VB NET, le langage me paraissant aller de soi.
J'ai aussi essayé
dispose()
qui ne marche pas.
Merci

Jean-paul
Commenter la réponse de jpmaton
Messages postés
12426
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 décembre 2018
0
Merci
le langage me paraissant aller de soi.

pour moi oui, mais pour ce que tu écris la preuve que non
  • sans langage
    dispose()
  • avec langage
    dispose()


C'est pourtant bien décrit dans la procédure.
ne marche pas.
qui veut dire:
  • ça ne change rien à ton problème?
  • maintenant ça plante à cette ligne?

Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.