我有一个DBF文件和索引文件。 我想读索引文件和搜索记录满足一定的条件。 (例如:搜索记录其中其StudentName以“A”开始,通过使用Student.DBF和StudentName.idx)
如何做到这一点编程?
我有一个DBF文件和索引文件。 我想读索引文件和搜索记录满足一定的条件。 (例如:搜索记录其中其StudentName以“A”开始,通过使用Student.DBF和StudentName.idx)
如何做到这一点编程?
这将是最容易通过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
}
我没有代码了我的头顶部,但如果你不希望使用ODBC,那么你应该考虑读ESRI形状文件,这些文件包括3个部分(或更多)一个.dbf(你在找什么),PRJ文件和.shp文件。 这可能需要一些工作,但你应该能够挖掘出的代码。 你应该看看SharpMap的 CodePlex上。 这不是一个简单的任务来读取DBF W / O ODBC,但它可以做到的,而且有很多的代码在那里做这个。 你必须处理大端VS little-endian的价值观,以及一系列文件版本,以及。
如果你去这里 ,你会发现代码读取DBF文件。 具体地讲,你有兴趣在public void ReadAttributes( Stream stream )
的方法。