Frage
Welche Spaltennamen kann nicht verwendet werden, wenn eine Excel-Tabelle mit ADO zu schaffen.
Ich habe eine Anweisung, die eine Seite in einer Tabelle erstellt:
CREATE TABLE [TableName] (Column string, Column2 string);
Ich habe festgestellt, dass Sie einen Spaltennamen von Date
oder Container
verwendet wird einen Fehler erzeugen, wenn die Anweisung ausgeführt wird.
Hat jemand eine vollständige (oder teilweise) Liste von Wörtern, die nicht als Spaltennamen verwendet werden können? Dies ist für den Einsatz in einer benutzerorientierten Umgebung und es wäre besser, zu „reparieren“ die Spalten als zum Absturz bringen.
Meine Behelfslösung für diese ist jeweils alle Vorkommen von Date
oder Container
mit Date_
und Container_
zu ersetzen.
Lösung
Sie können Klammern für jeden Feldnamen verwenden, z.
CREATE TABLE [TableName] ([Date] string, [Container] string)
Voll Beispiel:
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();
}
Andere Tipps
Hier sind die reservierten Wörter für MS Abfrage:
http://support.microsoft.com/kb/125948
Zellbenennungsregeln:
http://ezinearticles.com/?Rules -Für-Naming-Cells-in-Microsoft-Excel & id = 218607
Es scheint eher wie ein Problem mit Worten SQL reserviert. Dies ist eine gute Liste