2

Access MDB ファイルを作成する C# プログラムがあります。テーブルと列の名前は固定されており、変更する機会がありません。残念ながら、列の 1 つに「グループ」という名前が付いています。

私が書いたコードは次のようになります。

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

ExecuteNonQuery() を実行すると、構文エラーが発生します。「グループ」以外の列を使用すると、コードは正しく機能します。問題は、グループを列名ではなくキーワードとして解釈しているようです。

この問題を回避する方法を知っている人はいますか? 理想的には、列の名前を変更しますが、残念ながらそれは不可能です。

4

1 に答える 1

0

DDLステートメントでオブジェクト名として使用しようとしている予約語はグループだけではありません。

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

残念ながら、「comp」も予約語です。Accessの問題名と予約語を参照してください。

CREATE INDEXステートメント内の予約語を括弧で囲みます。

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