Команда oledb executeNonQuery выполняется по неверному пути - PullRequest
0 голосов
/ 05 июля 2018

У меня есть следующий код в приложении WPF:

TargetCon.Open();

foreach (var table in accessTables)
{
    var tableConfig = _centralConfig.DataTablesForExport.Where(x => x.Name.ToLower() == table).Single();

    _serilog.WriteString("Going to add index for table: " + tableConfig.Name);

    foreach (var index in tableConfig.IndexColumns)
    {
        var command = new OleDbCommand($"CREATE INDEX idx{index.ColumnName} ON {tableConfig.Name}({index.ColumnName})", TargetCon);
        command.ExecuteNonQuery();
    }
}

При пошаговом выполнении кода в отладке в строке command.ExecuteNoneQuery() возникает исключение, так как он не может найти файл в папке \in\debug проекта. Я не знаю, почему он смотрит в эту папку. Если я проверяю открытое свойство TargetCon, я вижу, что для свойства DataSource этого объекта правильно задан путь c:\databases\u2.mdb.

Может кто-нибудь объяснить, почему это происходит?

1 Ответ

0 голосов
/ 05 июля 2018

Оператор sql пытался создать индекс для несуществующего имени таблицы. Не очень полезное сообщение об ошибке, которое заставило меня пойти по неверному пути, чтобы решить.

Как только я исправил оператор sql, проблема была решена

...