oledb 命令 executeNonQuery 是 运行 针对错误的路径
oledb command executeNonQuery is running against wrong path
我在 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
文件夹中找到文件。我不知道为什么它在那个文件夹中查找。如果我检查 public 属性 TargetCon
,我会看到该对象的 DataSource
属性 已正确设置为路径 c:\databases\u2.mdb
。
任何人都可以解释为什么会这样吗?
sql 语句试图在不存在的 table 名称上创建索引。不是很有帮助的错误消息 - 这导致我冒险走上错误的解决路径。
一旦我修复了 sql 语句,问题就解决了
我在 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
文件夹中找到文件。我不知道为什么它在那个文件夹中查找。如果我检查 public 属性 TargetCon
,我会看到该对象的 DataSource
属性 已正确设置为路径 c:\databases\u2.mdb
。
任何人都可以解释为什么会这样吗?
sql 语句试图在不存在的 table 名称上创建索引。不是很有帮助的错误消息 - 这导致我冒险走上错误的解决路径。
一旦我修复了 sql 语句,问题就解决了