我需要使用 oledb 连接在 vb.net 中打开 foxpro 免费表。
但是...我只需要获取列名。我真的不需要“选择”任何东西。我正在尝试动态浏览我们所有的空闲表,并设置每个文件中每一列的列表,并将其外部参照到另一个包含每列描述的空闲表。
我现在有一个工作模型,但它要求我这样做......
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)
然后我获取数据表(dt)并循环获取列信息。
当我创建数据集并通过向导从目录加载所有表时,我希望它像 Visual Studio 一样快。它能够非常快速地找到所有列信息,而无需从表中读取数据。
如果您需要更多信息,请与我们联系。
谢谢。