所以,我正在尝试在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?
提前致谢!
编辑:
我无法直接解决这个问题,但我提出了一个有效的解决方案。 也就是说,将每个引用的文件复制为驱动器上的临时文件,并在执行查询字符串之前替换引用。