gpt4 book ai didi

vb.net - 在 VB.net 2005 中打开 FoxPro 表

转载 作者:行者123 更新时间:2023-12-05 00:09:22 24 4
gpt4 key购买 nike

我需要使用 oledb 连接在 vb.net 中打开 foxpro 免费表。

但是...我只需要获取列名。我真的不需要“选择”任何东西。
我正在尝试动态浏览我们所有的免费表,并将每个文件和外部参照中的每一列的列表设置为另一个包含每列描述的免费表。

我现在有一个工作模型,但它要求我做...

SELECT TOP 1 FROM "File" ORDER BY 1

但是在最大的表上,读取第一条记录需要两分钟多的时间,并且有250多个表。总的来说,它需要 15 到 20 分钟。

或者,是否有另一种方法可以在不使用“ORDER BY”的情况下只获取表的第一条记录?

这是我到目前为止所拥有的。 "file"作为参数传入。
它将包含类似“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 一样快。它能够非常快速地找到所有列信息,而无需从表中读取数据。

如果您需要更多信息,请与我们联系。

谢谢。

最佳答案

为什么你需要得到任何记录?你应该能够说:

SELECT * FROM "File" where 1 = 0

这将为您提供一个空的结果集,还将为您提供有关返回的投影的元数据。

您可能还想查看 GetOleDbSchemaTable method OleDbConnection class ,因为它使您无需执行查询即可获取有关数据库架构的信息。

您也可以使用 Microsoft ADO Extensions for Data Definition Language and Security通过 COM 互操作 (mxADOX.dll) 也可以获取架构信息。

关于vb.net - 在 VB.net 2005 中打开 FoxPro 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/422002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com