C#VFP OLEDB连接字符串问题(DBF和CDX与DBF和IDX)

时间:2017-05-26 19:53:17

标签: c# oledb visual-foxpro foxpro oledbconnection

之前我已连接到foxpro数据库,但只有那些同时具有.dbf和.idx文件的数据库。

我为Visual Foxpro 7.0注册Microsoft Ole DB Provider并使用以下类型的代码:

  string sqlSTR = "SELECT * FROM TableName";
  string strConnect = @"Provider=VFPOLEDB.1;Data Source=C:\Stuff.dbf;Extended Properties=dBASE IV;"

然后打开连接。但是,这个文件有一个.dbf和.cdx文件(在线阅读似乎是数据库的结构)。当我使用上面的连接字符串和以下代码时:

OleDbConnection myConn = new OleDbConnection(strConnect);
myConn.Open()

它没有错误或任何东西,但程序的执行在这里挂起。我有相同程序的其他几个部分连接到存在dbf + idx文件的文件(不是cdx)。我需要纠正的错误是什么?

我使用sqlSTR进行后续操作,使用数据适配器btw。

2 个答案:

答案 0 :(得分:1)

为遇到同样问题的任何人发布此答案。

dBase IV的参考实际上并不重要;它适用于旧的DBF + IDX foxpro文件组合并且是必需的(想想早期的VFP或者在foxpro 2.0天之前回到VFP之前)。

我真正缺少的是同一目录中与之关联的* .dbc,* .dct和* .dcx文件。它告诉我,因为这些文件实际上是与Stuff.dbf / Stuff.cdx文件不同的基本文件名。

我刚使用了try {} catch {}并将异常放到messagebox中,它告诉我它正在寻找哪个(不同的命名)文件。

感谢您的帮助!

答案 1 :(得分:1)

您的连接字符串错误。应该是这样的:

string sqlSTR = "SELECT * FROM TableName";
string strConnect = @"Provider=VFPOLEDB;Data Source=C:\;"

使用c:\​​作为数据库文件(或其他文件)的位置是值得怀疑的。