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)
私が間違っていることは何ですか?
接続を終了していますが、オブジェクトはまだメモリから解放されていません。 @ Jasonと同様に、usingステートメントでOleDbConnectionをラップします。 – zeroef