2011-12-21 7 views
0

OleDBを使用してASP.NETのExcelファイルからデータをインポートしています。インポートを終えた後、私は)(コマンドSystem.IO.File.Deleteを使用してファイルを削除したいが、それは次の例外スロー:私は、ファイルを開閉するために、次のコードを使用OleDBを使用してExcelファイルをインポートした後、Excelファイルを削除できない、別のプロセスで使用中であることを示します。

The process cannot access the file '...29.xls' because it is being used by another process. 

を:

Dim fajl As String 
fajl = MapPath("fajlovi/" + Request.QueryString("ID")) 
     Dim sConnectionStringExcel As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fajl & ";Extended Properties=Excel 8.0;" 
     Dim objConnExcel As New OleDbConnection(sConnectionStringExcel) 
     objConnExcel.Open() 
     Dim objCmdSelectExcel As New OleDbCommand("SELECT ZavedenKodPov, Ime, Mjesto, Adresa, JMBG, LicniBroj, ZaposlenKod, Nepoznat, Umro, Penzioner, Reon, VoziloProizvodjac, VoziloModel, VoziloRegistracija, Nekretnina, Datum, KontoBroj, NazivKonta, OpisPromjene, Dug, Pot FROM [Sheet1$]", objConnExcel) 
     Dim objAdapterExcel As New OleDbDataAdapter() 
     objAdapterExcel.SelectCommand = objCmdSelectExcel 
     Dim objDatasetExcel As New DataSet() 
     objAdapterExcel.Fill(objDatasetExcel, "XLData") 
     Dim tExcel As DataTable 
     tExcel = objDatasetExcel.Tables(0) 
     '. 
     '. 
     '. 
objConnExcel.Close() 
System.IO.File.Delete(fajl) 

私が間違っていることは何ですか?

+0

接続を終了していますが、オブジェクトはまだメモリから解放されていません。 @ Jasonと同様に、usingステートメントでOleDbConnectionをラップします。 – zeroef

答えて

2

コマンドと接続を処理します。好ましくは、usingステートメントで囲みます。そのファイルを削除できるはずです。

+0

あなたは私にそれを打つ。あなたが投稿したときにUsingステートメントのコードを書いていました!ここMSDNのリンクhttp://msdn.microsoft.com/en-US/library/htd05whh%28v=VS.80%29.aspx – zeroef

+0

ありがとう、それは働いた! – rnkjnk

関連する問題