Déconnection complète SQLITE

- - Dernière réponse : Whismeril
Messages postés
13824
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 octobre 2019
- 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 

4 réponses

Meilleure réponse
Messages postés
49
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
8 août 2019
1
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 196 internautes nous ont dit merci ce mois-ci

Whismeril
Messages postés
13824
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 octobre 2019
309 -
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
13824
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 octobre 2019
309
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
49
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
8 août 2019
1
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
13824
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 octobre 2019
309
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