[C#] File Excel lockato dopo apertura con OleDB

martedì 20 marzo 2007 - 13.35

MadBrain Profilo | Newbie

Salve,
ho riscontrato un problema di locking nell'accesso ad un file dopo che questo è stato aperto ed utilizzato tramite OleDB.

Nel mio progetto leggo il file Excel e, tramite un OleDBAdapter lo collego ad un dataset:

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"; strConn += "Data Source=" + fullPath + ";"; strConn += "Extended Properties=\"Excel 8.0;\""; OleDbConnection odbConn = new OleDbConnection(strConn); string sql = "SELECT * FROM [Foglio1$]"; OleDbCommand odbCmd = new OleDbCommand(sql, odbConn); OleDbDataAdapter odbAdapter = new OleDbDataAdapter(); odbAdapter.SelectCommand = odbCmd; DataSet ds = new DataSet(); odbAdapter.Fill(ds, "XLData");

Poi utilizzo il dataset ed alla fine chiudo tutto:

odbCmd.Dispose(); odbAdapter.Dispose(); odbConn.Close(); odbConn.Dispose(); ds.Dispose();

Fin qui pare tutto bene.
Solo che poi a me servirebbe spostare il file processato in un'altra directory per il backup e proprio sulla MoveTo il programma si inchioda ritornandomi una IOException "Il processo non può accedere al file perché è in uso da un altro processo."

Qualcuno ha idea di come si possa risolvere?
---------------
"chi fa domande rischia di sembrare stupido
chi non ne fa rischia di restare stupido"

wacker976 Profilo | Newbie

Forse richiami MoveTo troppo presto (in pratica potrebbe essere che tenti di spostare il file mentre anora la connessione al file Excel non è stata distrutta). Hai provato a ritardare l'operazione di qualche secondo?

MadBrain Profilo | Newbie

Provato anche questo sì, ho messo uno sleep a 5000 (!) ma non è cmq servito a nulla... e tra l'altro non avrebbe senso neanche funzionasse impostato a 1000
---------------
"chi fa domande rischia di sembrare stupido
chi non ne fa rischia di restare stupido"
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5