为什么我无法访问ODBC dBase表?

时间:2012-02-21 10:08:13

标签: c# odbc dbase

我继承了一些C#代码。它处理旧的dBase文件。没有人触及代码至少3 - 5年,编译版本在那里工作,但我无法访问它。现在,我尝试通过在相同的环境中从源代码重新编译它的工作原理(相同的架构,足够的外观驱动程序),它给了我以下错误:

[42S02] [Microsoft][ODBC dBase driver] A Microsoft Jet database engine could not find the object 'test'. Make sure the object exists and that you spell its name and the path name correctly.

编辑)在

的第二行
dbCommand.CommandText = "SELECT Count(*) FROM test";
recNum = (int)dbCommand.ExecuteScalar();
带有连接字符串

EDIT

OdbcConnection connection = new OdbcConnection(String.Format("driver={{Microsoft dBase Driver (*.dbf)}};DriverID=533;Dbq={0};Exclusive=1;", path));

我尝试了在Google上找到的明显解决方案,比如确定文件是否存在,更改文件名等等。所以,我很确定该文件应该在哪里,我是非常确定文件没有损坏(我可以用我从互联网上下载的一些共享软件打开它,更不用说文件在过去3 - 5年内也没有改变)。这是我第一次使用dBase和ODBC,所以我可能会错过一些显而易见的东西。

我还能尝试使其有效吗?

2 个答案:

答案 0 :(得分:0)

检查您是否配置了ODBC数据源(开始>设置>控制面板> ODBC)。 数据源的名称必须包含在Connection对象的连接字符串中。 表测试必须是配置的数据源指向的数据库表。

答案 1 :(得分:0)

有很多人喜欢在较旧的.dbf文件上使用Jet,但它们实际上可能不是dBASE,而是Foxpro(略有不同的标题信息)。您可能实际上需要下载并使用VFP OleDB提供程序。

answered previous questions帮助显示/描述连接,此外还有一个指向Microsoft的链接,用于获取/下载最新的Visual Foxpro OleDB提供程序。

关于连接字符串的注释。即使.dbf文件不是“数据库”的一部分,而是一个空闲表,您也希望连接到数据所在的物理PATH,然后只需根据表的名称进行查询即可获得数据。 / p>