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.

È stato utile?

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

Sembra più un problema con SQL parole riservate.Questo è un buona lista

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top