У меня есть следующая функция:
Public Function OleDBCSVToDataTable(directory As String, tableName As String, fileName As String, Optional start As Long = 0) As DataTable
Dim CnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & directory & ";Extended Properties='Excel 8.0;HDR=YES'"
Dim dt As DataTable = GetTableSchema(tableName)
Using Adp As New OleDbDataAdapter("select * from [" & fileName & "]", CnStr)
Adp.Fill(start, 1000, dt)
End Using
Return dt
End Function
Функция предназначена для чтения CSV в таблицу данных с использованием OLEDB для импорта в SQL, однако я получаю эту ошибку:
«Ядро базы данных Microsoft Access не может открыть или записать в файл« C:\TEST ». Он уже открыт исключительно другим пользователем, или вам нужно разрешение на просмотр и запись его данных».
Я попытался это а> решение. Все разрешения предоставлены (полный доступ для пользователей):
Я видел это, однако предлагаемые варианты, отличные от OLEDB, являются решениями, которые, похоже, не работают с CSV. Кроме того, я думаю, что есть нативные библиотеки.
Однако я открыт для предложений по лучшим способам достижения этого, исходя из требований — больших CSV, проверки данных — это кажется лучшим, если предположить, что я смогу заставить его работать.
TextFieldParser
для чтения CSV-файла и самостоятельно заполнитьDataTable
. В некоторых случаях это может быть желательно или даже необходимо, если ADO.NET не считывает данные как нужные вам типы данных. - person jmcilhinney   schedule 18.06.2018