之前我已连接到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。
答案 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:\作为数据库文件(或其他文件)的位置是值得怀疑的。