OleDB с использованием источников на нескольких дисках - PullRequest
0 голосов
/ 13 апреля 2011

Итак, я пытаюсь выполнить заданный пользователем запрос к файлам 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:

Я не мог решить эту проблему напрямую, однако я нашел решение, которое работает. То есть скопировать каждый из упомянутых файлов как временный файл на диске и заменить ссылки перед выполнением строки запроса.

...