【发布时间】:2015-11-16 23:17:19
【问题描述】:
我有一个 Foxpro .DBF 文件。我正在使用 OLEDB 驱动程序来读取 .DBF 文件。我可以查询 DBF 并利用它的 .CDX 索引文件(因为它是自动打开的)。我的问题是我想用 .NDX 索引文件(打开 .DBF 时不会自动打开)查询它。如何使用 OLEDB 驱动程序在 C# 中打开 .NDX 文件,因为 DBF 非常大,无法在没有索引的情况下搜索记录?谢谢大家!这是我用来读取 DBF 的代码。
OleDbConnection oleDbConnection = null;
try
{
DataTable resultTable = new DataTable();
using (oleDbConnection = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=P:\\Test\\DSPC-1.DBF;Exclusive=No"))
{
oleDbConnection.Open();
if (oleDbConnection.State == ConnectionState.Open)
{
OleDbDataAdapter dataApdapter = new OleDbDataAdapter();
OleDbCommand command = oleDbConnection.CreateCommand();
string selectCmd = @"select * from P:\Test\DSPC-1 where dp_file = '860003'";
command.CommandType = CommandType.Text;
command.CommandText = selectCmd;
dataApdapter.SelectCommand = command;
dataApdapter.Fill(resultTable);
foreach(DataRow row in resultTable.Rows)
{
//Write the data of each record
}
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
try
{
oleDbConnection.Close();
}
catch (Exception e)
{
Console.WriteLine("Failed to close Oledb connection: " + e.Message);
}
}
【问题讨论】:
-
NDX 不是 VFP 创建的文件。我认为这是一个 dBase 文件。
标签: c# oledb visual-foxpro foxpro oledbconnection