最近的项目遇到一个麻烦,要求把dbf中打删除标记的记录也读取出来。网上查了不少资料都是在连接字串上下功夫,结果都无济于事。自己动手,丰衣足食,经过思考,决定采用向FoxPro驱动程序执行命令还原被软删除记录的方法,总算解决了这个麻烦。
方法很简单:
1.在项目中添加Foxpro引用
2. 编写代码
1 VisualFoxpro.Application app = new VisualFoxpro.FoxApplication();
2 app.Visible = false;
3 app.DoCmd(@"USE e:\test\abc.dbf EXCLUSIVE");//引用dbf文件
4 app.DoCmd(@"recall all");//恢复被删除的记录。如果想保持dbf文件原样,可以先备份。
5 app.Quit();
另外需要注意的是,执行FoxPro命令需要一句一句执行,不能多句合并在一起,否则会发生错误,本人一开始不知道,在这个地方啃了很久,切记。