Déconnection complète SQLITE

oeil - 23 janv. 2018 à 09:34 - Dernière réponse : Whismeril 11517 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 mai 2018 Dernière intervention
- 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

5 réponses

jpmaton 41 Messages postés mardi 17 mai 2005Date d'inscription 24 janvier 2018 Dernière intervention - 24 janv. 2018 à 10:42
+1
Utile
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
Cette réponse vous a-t-elle aidé ?  
Whismeril 11517 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 mai 2018 Dernière intervention - 24 janv. 2018 à 10:57
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
Whismeril 11517 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 mai 2018 Dernière intervention - 23 janv. 2018 à 13:07
0
Utile
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
jpmaton 41 Messages postés mardi 17 mai 2005Date d'inscription 24 janvier 2018 Dernière intervention - 23 janv. 2018 à 16:14
0
Utile
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
Whismeril 11517 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 mai 2018 Dernière intervention - 23 janv. 2018 à 18:39
0
Utile
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.