2016-08-25 5 views
1

Я пытаюсь выполнить преобразование aC# proyect для чтения данных из двух таблиц dbf (FoxPro), для этого мне нужно сделать JOIN, но у меня проблема, 2 файла находятся в две разные папки (1 в папке, а другой в папке, это то, что я стараюсь:Читайте из 2 файлов dbf в разных папках

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(); 
} 

Если я стараюсь только один стол работает нормально, так что проблема в том, как join2 таблицы в разных папках?

ответ

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 
+0

СПАСИБО ЭТО РАБОТЫ СОВЕРШЕННО !! – Ion