Итак, я пытаюсь выполнить заданный пользователем запрос к файлам 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 на нескольких дисках или сетевых дисках?
Заранее спасибо!
EDIT:
Я не мог решить эту проблему напрямую, однако я нашел решение, которое работает.
То есть скопировать каждый из упомянутых файлов как временный файл на диске и заменить ссылки перед выполнением строки запроса.