Мне нужно открыть бесплатные таблицы foxpro в vb.net, используя соединение oledb.
Но... Мне нужно только получить имена столбцов. Мне действительно не нужно ничего «выбирать». Я пытаюсь динамически просмотреть все наши бесплатные таблицы и настроить список каждого столбца из каждого файла и сделать ссылку на другую свободную таблицу, содержащую описание каждого столбца.
Сейчас у меня есть рабочая модель, но она требует, чтобы я сделал...
SELECT TOP 1 FROM "File" ORDER BY 1
Но в самой большой таблице чтение первой записи занимает более двух минут, а таблиц более 250. В целом, это занимает от 15 до 20 минут.
Или есть другой способ получить только первую запись таблицы без использования «ORDER BY»?
Вот что у меня есть до сих пор. "Файл" передается в качестве параметра.
Он будет содержать такую информацию, как "C:\data\table1.dbf"
Dim filePath As String
filePath = IO.Path.GetDirectoryName(file)
myOledbConnection = New OleDbConnection("Provider=VFPOLEDB.1;Data Source=" & filePath & ";Collating Sequence=MACHINE")
myOledbCommand = New OleDbCommand
myOledbDataAdapter = New OleDbDataAdapter
Dim fields, from, order As String
fields = "select top 1 *"
from = " from " & file
order = " order by 1"
myOledbCommand.CommandText = fields & from & order
myOledbCommand.Connection = myOledbConnection
myOledbDataAdapter.SelectCommand = myOledbCommand
myOledbDataAdapter.Fill(dt)
Затем я беру datatable (dt) и прокручиваю, чтобы получить информацию о столбце.
Я хотел бы, чтобы это было так же быстро, как Visual Studio, когда я создаю набор данных и загружаю все таблицы из каталога с помощью мастера. Он может очень быстро найти всю информацию столбца, не считывая данные из таблицы.
Дайте мне знать, если вам нужна дополнительная информация.
Спасибо.