Domanda
Quali nomi di colonna non può essere utilizzato quando si crea un foglio di calcolo di Excel con ADO.
Ho un istruzione che crea una pagina in un foglio di calcolo:
CREATE TABLE [TableName] (Column string, Column2 string);
Ho trovato che l'uso di un nome di colonna di Date
o Container
verrà generato un errore quando viene eseguita l'istruzione.
Qualcuno ha un completo (o parziale) elenco di parole che non possono essere utilizzati come nomi di colonna?Questo è per l'uso in un "user-driven" ambiente e sarebbe meglio, per "correggere" le colonne di crash.
Il mio lavoro in giro per questi è quello di sostituire eventuali occorrenze di Date
o Container
con Date_
e Container_
rispettivamente.
Soluzione
È possibile utilizzare le parentesi per qualsiasi nomecampo, ad esempio:
CREATE TABLE [TableName] ([Date] string, [Container] string)
Esempio completo:
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();
}
Altri suggerimenti
Ecco le parole riservate per MS Query:
http://support.microsoft.com/kb/125948
Cella regole di naming:
http://ezinearticles.com/?Rules-For-Naming-Cells-in-Microsoft-Excel&id=218607
Sembra più un problema con SQL parole riservate.Questo è un buona lista