2010-02-02 51 views
0

我有一個DBF文件和一個索引文件。 我想讀取索引文件和搜索記錄滿足一些條件。 (例如:其StudentName以Student.DBF和StudentName.idx開頭的搜索記錄)使用.idx文件在DBF文件中搜索

如何以編程方式執行此操作?

+0

您的意思是,「我如何以編程方式執行此操作?」或者「我如何通過ODBC來做到這一點?」 – 2010-02-02 14:00:16

+0

@Michael:我已經更新了我的問題。謝謝! – 2010-02-02 14:08:12

+0

所以,以編程方式使用ODBC?或不? – 2010-02-02 14:12:34

回答

0

這將是最容易通過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 

} 
0

我沒有這個代碼把我的頭頂部,但如果你不希望使用ODBC,那麼你應該考慮讀ESRI形狀文件,它們由3部分(或更多)a .DBF(您正在查找的內容),PRJ文件和.SHP文件組成。它可能需要一些工作,但你應該能夠挖掘出代碼。您應該查看codeplex上的Sharpmap。讀取dbf w/o ODBC並不是一件簡單的任務,但它可以完成,並且有很多代碼用於執行此操作。你必須處理大端和小端的值,以及一系列的文件版本。

如果你去here你會發現代碼來讀取dbf文件。具體而言,您會對public void ReadAttributes(Stream stream)方法感興趣。