OleDB在多个驱动器上使用源

时间:2011-04-13 14:52:01

标签: c# csv oledb

所以,我正在尝试在csv文件上执行用户给定的查询,我需要支持多个驱动器,这是我的代码:

try
        {
            OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\;Extended Properties=\"Text;HDR;FMT=Delimited\"");
            OleDbDataAdapter da = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            OleDbCommand cd = new OleDbCommand(q, cn);
            cn.Open();
            da.SelectCommand = cd;
            ds.Clear();
            da.Fill(ds, "CSV");
            dataGridView1.DataSource = ds.Tables[0];
            cn.Close();
            }
        catch (Exception ex)
        {
            MessageBox.Show("There was an issue: " + ex.Message +" \n with the SQL of: \n"+q);
        }

消息框显示

There was an issue: Syntax error in FROM clause with the SQL of:
select a.NET_ID, b.BED_SPACE, a.BUILDING_NAME
from G:\path\to\AnotherCSV.csv a
join test.csv b on b.NET_ID = a.NET_ID

test.csv位于C:\ test.csv

如何修改我的查询以便在多个驱动器或网络驱动器上使用CSV?

提前致谢!

编辑:

我无法直接解决这个问题,但我提出了一个有效的解决方案。 也就是说,将每个引用的文件复制为驱动器上的临时文件,并在执行查询字符串之前替换引用。

0 个答案:

没有答案