使用的.IDX文件中DBF文件搜索(Search in DBF file using .idx fi

2019-11-02 23:14发布

我有一个DBF文件和索引文件。 我想读索引文件和搜索记录满足一定的条件。 (例如:搜索记录其中其StudentName以“A”开始,通过使用Student.DBF和StudentName.idx)

如何做到这一点编程?

Answer 1:

这将是最容易通过OLEDB连接查询

using System.Data.OleDb;
using System.Data;


OleDbConnection oConn = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=C:\\PathToYourDataDirectory"); 
OleDbCommand oCmd = new OleDbCommand(); 
oCmd.Connection = oConn; 
oCmd.Connection.Open(); 
oCmd.CommandText = "select * from SomeTable where LEFT(StudentName,1) = 'A'"; 

// Create an OleDBAdapter to pull data down
// based on the pre-built SQL command and parameters
OleDbDataAdapter oDA = new OleDbDataAdapter(oCmd);
DataTable YourResults
oDA.Fill(YourResults);
oConn.Close(); 


// then you can scan through the records to get whatever
String EachField = "";
foreach( DataRow oRec in YourResults.Rows )
{
  EachField = oRec["StudentName"];
  // but now, you have ALL fields in the table record available for you

}


Answer 2:

我没有代码了我的头顶部,但如果你不希望使用ODBC,那么你应该考虑读ESRI形状文件,这些文件包括3个部分(或更多)一个.dbf(你在找什么),PRJ文件和.shp文件。 这可能需要一些工作,但你应该能够挖掘出的代码。 你应该看看SharpMap的 CodePlex上。 这不是一个简单的任务来读取DBF W / O ODBC,但它可以做到的,而且有很多的代码在那里做这个。 你必须处理大端VS little-endian的价值观,以及一系列文件版本,以及。

如果你去这里 ,你会发现代码读取DBF文件。 具体地讲,你有兴趣在public void ReadAttributes( Stream stream )的方法。



文章来源: Search in DBF file using .idx file