質問
ADO で Excel スプレッドシートを作成するときに使用できない列名はどれですか。
スプレッドシートにページを作成するステートメントがあります。
CREATE TABLE [TableName] (Column string, Column2 string);
列名を使用すると、 Date
または Container
ステートメントが実行されるとエラーが生成されます。
列名として使用できない単語の完全な (または部分的な) リストを持っている人はいますか?これはユーザー主導の環境で使用するためのものであり、クラッシュするよりも列を「修正」する方が良いでしょう。
これらに対する私の回避策は、発生したものを置き換えることです。 Date
または Container
と Date_
そして 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();
}
他のヒント
MS Query の予約語は次のとおりです。
http://support.microsoft.com/kb/125948
セルの命名規則:
http://ezinearticles.com/?Rules-For-Naming-Cells-in-Microsoft-Excel&id=218607
SQL の予約語の問題のようです。これは 良いリスト
所属していません StackOverflow