2

我有一个创建 Access MDB 文件的 C# 程序。表和列的名称是固定的,我没有机会更改它们。不幸的是,其中一列被命名为“组”。

我编写的代码如下所示:

string indexSQL = buildIndexString(table.TableName);
//indexSQL = "CREATE INDEX comp ON ExpFactMap([Group]);"
new OleDbCommand(indexSQL, conn).ExecuteNonQuery();

执行 ExecuteNonQuery() 时,出现语法错误。如果我使用“组”以外的任何列,则代码可以正常工作。问题似乎在于它将 Group 解释为关键字而不是列名。

有谁知道如何解决这个问题?在理想情况下,我会更改列的名称,但不幸的是,这是不可能的。

4

1 回答 1

0

Group 不是您尝试在 DDL 语句中用作对象名称的唯一保留字:

//indexSQL = "CREATE INDEX comp ON ExpFactMap([Group]);"

不幸的是,“comp”也是一个保留字。请参阅Access 中的问题名称和保留字

括号中的保留字在您的CREATE INDEX声明中:

CREATE INDEX [comp] ON ExpFactMap([Group]);
于 2012-07-09T18:00:31.883 回答