我正在编写一个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”。