C# Microsoft.Jet.OLEDB.4.0未从DBF检索删除标记的记录

C# Microsoft.Jet.OLEDB.4.0未从DBF检索删除标记的记录,c#,oledb,dbf,dbase,C#,Oledb,Dbf,Dbase,我正在使用以下代码从DBF文件检索数据 dbfConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"DBASE IV\";Data Source=" + appPath + "test\\sales\\" + DateTime.Now.ToString("yyyyMM") + "\\"; OleDbConnection odconnection = new OleDbConnection(dbfCon

我正在使用以下代码从
DBF
文件检索数据

dbfConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"DBASE IV\";Data Source=" + appPath + "test\\sales\\" + DateTime.Now.ToString("yyyyMM") + "\\";
OleDbConnection odconnection = new OleDbConnection(dbfConnectionString);
odconnection.Open();
OleDbCommand oCmdTest = new OleDbCommand("select  * from payment", odconnection);
oCmdTest.ExecuteNonQuery();
oledbDataAdapter = new OleDbDataAdapter(oCmdTest);
oledbDataAdapter.Fill(dataSet);
dataTable = dataSet.Tables[0];
除了不检索标记为已删除的记录外,该方法工作正常。我能够使用
VFPOLEDB.1
作为提供程序成功检索已删除的记录,并执行一些附加代码(
FoxPro
这很好,但给了我一些关于字段格式的问题:-
使用VFPOLEDB驱动程序读取某些数值时出错,这可以通过强制转换这些字段来解决,但问题是我的表太大,所以我必须计算并强制转换许多字段)


但是这个附加的代码不适用于
Microsoft.Jet.OLEDB.4.0
。我如何从
dbf
文件中以提供商的身份使用
Microsoft.Jet.OLEDB.4.0
检索已删除的记录?非常感谢您提供的任何帮助。

嗯,我找不到使用
Microsoft.Jet.OLEDB.4.0
Micr>读取已删除记录的方法osoft.ACE.OLEDB.12.0
来自
DBF
文件。但当我使用不同的提供程序时,一切都很顺利,
Advantage OLE DB provider
。安装了它并引用了32位
.dll
(因为我的解决方案针对
任何Cpu
)。连接字符串在中修改为

dbfConnectionString = @"Provider=Advantage.OLEDB.1;User ID=adssys;Data Source=" + appPath + "test\\sales\\" + DateTime.Now.ToString("yyyyMM") + "\\;TableType=ADS_CDX;ShowDeleted=TRUE;Advantage Server Type=ADS_LOCAL_SERVER;";

此处
showdelected=TRUE
用于包括已删除的记录。

尝试此操作,然后不要使用修改后的OleDbCommand.dbfConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;扩展属性=\”DBASE IV;deleted=0\”;数据源=“+appPath+”test\\sales\\”+DateTime.Now.ToString(“yyyyMM”)+“\”;它不工作,但没有错误..还尝试了Microsoft.ACE.OLEDB.12.0
dbfConnectionString = @"Provider=Advantage.OLEDB.1;User ID=adssys;Data Source=" + appPath + "test\\sales\\" + DateTime.Now.ToString("yyyyMM") + "\\;TableType=ADS_CDX;ShowDeleted=TRUE;Advantage Server Type=ADS_LOCAL_SERVER;";