【问题标题】:Read from 2 dbf files in different folders从不同文件夹中的 2 个 dbf 文件中读取
【发布时间】:2016-08-25 10:12:04
【问题描述】:

我正在尝试创建一个 c# 项目来从 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 个表?

【问题讨论】:

    标签: c# visual-foxpro dbf


    【解决方案1】:

    只需使用括号中的完整路径和文件名。即:

    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
    

    【讨论】:

    • 感谢这个完美的作品!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2015-07-19
    相关资源
    最近更新 更多