从不同文件夹中的2个dbf文件中读取

时间:2016-08-25 10:12:05

标签: c# visual-foxpro dbf

我正在尝试使用#proyect来从2个dbf表(FoxPro)读取数据,为此我需要进行JOIN,但是我有一个问题,这2个文件位于两个不同的文件夹中(文件夹中有1个)和另一个在子文件夹中,这是我尝试的:

string Con = @"Provider=VFPOLEDB.1;Data Source=\\Srverp\gab";
OleDbConnection ConnectionHandler = new OleDbConnection(Con);
ConnectionHandler.Open();
OleDbDataAdapter DAT = new OleDbDataAdapter();

string SQL = @"SELECT * FROM bproved join .\ges_01\bproalb";

OleDbCommand Query = new OleDbCommand(SQL, ConnectionHandler);
OleDbDataReader datareader = Query.ExecuteReader();

while (datareader.Read())
{          
    Console.WriteLine( datareader.GetValue(0).ToString());
    Console.ReadKey(); 
}

如果我只尝试1个表工作正常,那么问题是如何在不同的文件夹中加入2个表?

1 个答案:

答案 0 :(得分:1)

只需使用fullpath&括在括号中的文件名。即:

string table1 = @"\\Srverp\gab\bproved.dbf";
string table2 = @"\\Srverp\gab\ges_01\bproalb.dbf";

string con = @"Provider=VFPOLEDB;Data Source=\\Srverp\gab";

string sql = string.Format(@"SELECT * FROM ('{0}') t1
    inner join ('{1}') t2 on t1.bprovedId = t2.bprovedId",
    table1, table2);

DataTable t = new DataTable();
using (OleDbConnection connectionHandler = new OleDbConnection(con))
{
    OleDbCommand cmd = new OleDbCommand(sql, connectionHandler);

    connectionHandler.Open();
    t.Load( cmd.ExecuteReader() );
    connectionHandler.Close();
}
// t has yopur data