代码之家  ›  专栏  ›  技术社区  ›  Rob Bowman

OLEDB命令executenonquery正在对错误的路径运行

  •  0
  • Rob Bowman  · 技术社区  · 6 年前

    我在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 回复  |  直到 6 年前
        1
  •  0
  •   Rob Bowman    6 年前

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

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