Я уверен, что пропустил что-то очевидное.Что было бы правильным OleDbConnection ConnectionString для загруженного файла?
Простая задача передо мной: «Загрузите файл Excel (2003) через ASP.NET на странице« Формы »и нажмите содержимое этого файла в DataTable при подготовке к валидации/хранению данных».
Эти операции работают нормально уже применительно к локально хранимым издание файла - для этого я просто использовать OleDbConnection-ConnectionString «String.Format (» Provider = Microsoft.Jet.OLEDB.4.0; источник данных = {0}; Расширенные свойства = Excel 8.0; ", fileName)" из OleDbDataAdapter.
Однако, пытаясь повторить, что с закачиваемым изданием того же файл (через контроль FileUpload), на линии, где я заполнить OleDbDataAdapter я получаю ошибку [«Ядро базы данных Microsoft Jet не может найдите объект «Sheet1 $». Убедитесь, что объект существует, и вы правильно указали его имя и имя пути ».] Ошибка такая общая и болезненная - все же я не уверен, где искать дальше. Я предполагаю, что структура строки соединения является незаконной для загруженного файла.
Я искал через StackOverflow и MSDN и даже в Интернете без успеха до сих пор, но поисковые термины могут быть чрезмерно вездесущими. Должен ли я фактически найти локальный репозиторий для сохранения загруженного файла до попытки разобрать его содержимое? Могу ли я просто построить соединение с «файлом в памяти»? В случае, если это касается ответа, загруженные файлы не должны превышать 200 килобайт.
Искреннее спасибо заранее за любую помощь, оказываемую ...
Да, вы должны временно сохранить его на диск .. –