Невозможно удалить файл Excel после импорта данных из него с помощью OleDB, говорит, что он используется другим процессом - PullRequest
0 голосов
/ 21 декабря 2011

Я импортирую данные из файла Excel в ASP.NET, используя OleDB.После завершения импорта я хочу удалить файл с помощью команды System.IO.File.Delete (), но он выдает следующее исключение:

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

Я использовал следующий код, чтобы открыть и закрытьfile:

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)

Есть идеи, что я делаю не так?

1 Ответ

2 голосов
/ 22 декабря 2011

распоряжаться командой и соединением, желательно в операторе использования.тогда вы сможете удалить файл.

...