質問

ADO で Excel スプレッドシートを作成するときに使用できない列名はどれですか。

スプレッドシートにページを作成するステートメントがあります。

CREATE TABLE [TableName] (Column string, Column2 string);

列名を使用すると、 Date または Container ステートメントが実行されるとエラーが生成されます。

列名として使用できない単語の完全な (または部分的な) リストを持っている人はいますか?これはユーザー主導の環境で使用するためのものであり、クラッシュするよりも列を「修正」する方が良いでしょう。

これらに対する私の回避策は、発生したものを置き換えることです。 Date または ContainerDate_ そして Container_ それぞれ。

役に立ちましたか?

解決

任意のフィールド名に括弧を使用できます。例:

CREATE TABLE [TableName] ([Date] string, [Container] string)

完全な例:

using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\test.xls;Extended Properties='Excel 8.0;HDR=Yes'"))
{
  conn.Open();
  OleDbCommand cmd = new OleDbCommand("CREATE TABLE [TableName] ([Date] string, [Container] string)", conn);
  cmd.ExecuteNonQuery();
}

他のヒント

SQL の予約語の問題のようです。これは 良いリスト

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top