0

我正在尝试连接到HISTORY.DBF具有链接 SMT 文件 ( ) 的 DBF ( HISTORY.SMT)。我有多个 DBF 文件,除了带有 SMT 文件的文件之外,我可以连接到所有文件。

查看 DBF 的标头信息表明它是 Clipper(E5 标头)格式的 DBF,对于大多数文件使用下面的连接代码可以正常读取,但是一旦我尝试读取具有关联 SMT 的文件,它就会失败并出现错误:

外部表不是预期的格式

我的代码如下

Dim dsDataSet As New DataSet
Dim ConnectionString As String
Dim daDataAdapter As OleDb.OleDbDataAdapter
Dim dBaseConnection As New System.Data.OleDb.OleDbConnection

Dim strFilePath As String = gloStrPath & "data"
Dim strDBF As String = "HISTORY.DBF"

Try
    ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFilePath & ";Extended Properties=dBase III;"
    dBaseConnection = New System.Data.OleDb.OleDbConnection(ConnectionString)
    If dBaseConnection.State = 0 Then dBaseConnection.Open()
Catch ex As Exception
    MsgBox(ex.Message, 16, "Error")
End Try

Try
    daDataAdapter = New OleDb.OleDbDataAdapter("select * from " & strDBF, dBaseConnection)
    daDataAdapter.Fill(dsDataSet, "Name")
Catch ex As Exception
    MsgBox(ex.Message, 16, "Error")
End Try

谁能提供任何关于我做错了什么或我错过了什么的见解?

4

1 回答 1

0

这些文件似乎是使用 HiPer-Six 格式和 SMT 备忘录文件创建的 DBF。检查这个https://www.dbf2002.com/dbf-file-format.html

于 2020-12-08T03:00:29.167 回答