Использование oledb после загрузки файла

У меня возникла проблема с использованием механизма oledb для открытия файла Excel после использования диалогового окна загрузки файла. Если я устанавливаю имя файла для соединения oledb с фиксированным именем файла, оно работает, но если я пытаюсь получить имя файла из элемента управления загрузкой файлов, я получаю сообщение об ошибке. Внешняя таблица не соответствует ожидаемому формату. Файл не открыт в другом приложении. Я попытался удалить и закрыть все содержимое файла в файле загрузки. Мой код выглядит следующим образом

if (FileUpload1.HasFile)
{
    //sXLConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strvirtpath + "\\Unlocked  Upload-v5.xlsx " + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";";
    sXLConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strvirtpath + "\\" + FileUpload1.FileName + " ;Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";";
    FileUpload1.FileContent.Flush();
    FileUpload1.FileContent.Close();
    FileUpload1.FileContent.Dispose();
    FileUpload1.Dispose();
}
OleDbConnection xlConn = new OleDbConnection(sXLConnStr);
xlConn.Open();

Любая помощь будет оценена по достоинству.


person T Baldwin    schedule 11.03.2016    source источник
comment
Можно ли вручную открыть загруженный файл в Excel? Возможно, он как-то искажается во время загрузки.   -  person Eric J.    schedule 11.03.2016
comment
Я настоятельно рекомендую использовать EPPlus, а не Oledb для обработки файлов Excel. Он намного мощнее и проще в использовании. Однако он не поддерживает старый формат .xls, только .xlsx nuget.org/packages/EPPlus   -  person Eric J.    schedule 11.03.2016


Ответы (1)


Сначала сохраните файл, а затем получите доступ к нему, используя путь, по которому он сохранен.

FileUpload1.SaveAs(directory + @"\" + filename);
person ChrisBint    schedule 11.03.2016
comment
Это не работает. Вы имеете в виду сохранить его в другой каталог? - person T Baldwin; 14.03.2016
comment
Это работало при сохранении файла по другому пути - person T Baldwin; 15.03.2016