oledb命令executeNonQuery在错误的路径下运行

时间:2018-07-05 18:39:48

标签: c# ado.net oledb

我在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 :(得分:0)

sql语句试图在不存在的表名上创建索引。这不是非常有用的错误消息-导致我冒险走错误的道路去解决。

一旦我修复了sql语句,问题就解决了