DBF 文件名中的下划线
Underscore in DBF file name
我正在编写一个 VB NET 程序来使用 OleDbReader 读取 dBase .dbf 文件。当文件名包含下划线时,OleDbDataReader 会给出一个文件未找到错误,而名称中没有下划线的同一文件工作正常。
我正在做的一些示例代码:
Dim dBaseConnection As OleDbConnection
Dim dBaseCommand As OleDbCommand
Dim dBaseDataReader As OleDbDataReader
Dim schemaTable As DataTable
Dim x, y, z
Dim Builder As New OleDbConnectionStringBuilder With
{
.DataSource = IO.Path.GetDirectoryName(filename),
.Provider = "Microsoft.Jet.OLEDB.4.0"
}
Builder.Add("Extended Properties", "dBase III")
dBaseConnection = New OleDbConnection With {.ConnectionString = Builder.ConnectionString}
dBaseConnection.Open()
dBaseCommand = New OleDbCommand("SELECT * FROM " & filename, dBaseConnection)
dBaseDataReader = dBaseCommand.ExecuteReader(CommandBehavior.SequentialAccess)
schemaTable = dBaseDataReader.GetSchemaTable()
While dBaseDataReader.Read And Not _abort
x = Val(dBaseDataReader("x").ToString)
y = Val(dBaseDataReader("y").ToString)
z = Val(dBaseDataReader("z").ToString)
'do other stuff here
End While
有谁知道下划线是否是 dbf 文件名的禁止符号?或者这是某种错误?
在这种情况下,文件名是 "c:\temp\test_info.dbf"。
这可能是因为文件名(扩展名前)的长度超过 8 个字符。在 dBase 时代,8.3 是任何 dbf 文件的最大值。
我正在编写一个 VB NET 程序来使用 OleDbReader 读取 dBase .dbf 文件。当文件名包含下划线时,OleDbDataReader 会给出一个文件未找到错误,而名称中没有下划线的同一文件工作正常。
我正在做的一些示例代码:
Dim dBaseConnection As OleDbConnection
Dim dBaseCommand As OleDbCommand
Dim dBaseDataReader As OleDbDataReader
Dim schemaTable As DataTable
Dim x, y, z
Dim Builder As New OleDbConnectionStringBuilder With
{
.DataSource = IO.Path.GetDirectoryName(filename),
.Provider = "Microsoft.Jet.OLEDB.4.0"
}
Builder.Add("Extended Properties", "dBase III")
dBaseConnection = New OleDbConnection With {.ConnectionString = Builder.ConnectionString}
dBaseConnection.Open()
dBaseCommand = New OleDbCommand("SELECT * FROM " & filename, dBaseConnection)
dBaseDataReader = dBaseCommand.ExecuteReader(CommandBehavior.SequentialAccess)
schemaTable = dBaseDataReader.GetSchemaTable()
While dBaseDataReader.Read And Not _abort
x = Val(dBaseDataReader("x").ToString)
y = Val(dBaseDataReader("y").ToString)
z = Val(dBaseDataReader("z").ToString)
'do other stuff here
End While
有谁知道下划线是否是 dbf 文件名的禁止符号?或者这是某种错误?
在这种情况下,文件名是 "c:\temp\test_info.dbf"。
这可能是因为文件名(扩展名前)的长度超过 8 个字符。在 dBase 时代,8.3 是任何 dbf 文件的最大值。