Я не знаю, в чем причина вашей ошибки, но я знаю, что, учитывая код, который вы показали, нет смысла перебирать все записи в вашей таблице данных. Кроме того, вы можете группировать операторы Using, чтобы избежать глубокого вложения, а метод .Fill()
имеет перегрузки, которые позволяют вам указывать имя таблицы или даже заполнять таблицу напрямую, а не использовать весь набор данных. Любой из них может показаться лучшим выбором, чем просто возвращение набора данных с одной безымянной таблицей.
Dim sheetName As String = dt.Rows(sheetNumber)("TABLE_NAME")
Using excelCommand As New OleDbCommand( _
String.Format("Select * from [{0}]", sheetName), conn), _
excelAdapter As OleDbDataAdapter = New OleDbDataAdapter(excelCommand)
excelAdapter.Fill(excelDataSet, sheetName)
End Using
Что касается вашей конкретной проблемы, я думаю, что в имени файла есть недопустимый символ, который вызывает проблемы со строкой соединения.