Pregunta

Qué nombres de columnas no se pueden usar al crear una hoja de cálculo de Excel con ADO.

Tengo una declaración que crea una página en una hoja de cálculo:

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

Descubrí que usar un nombre de columna de Date o Container generará un error cuando se ejecute la declaración.

¿Alguien tiene una lista completa (o parcial) de palabras que no se pueden utilizar como nombres de columnas?Esto es para usar en un entorno controlado por el usuario y sería mejor "arreglar" las columnas que bloquearlas.

Mi solución para estos es reemplazar cualquier ocurrencia de Date o Container con Date_ y Container_ respectivamente.

¿Fue útil?

Solución

Puede utilizar corchetes para cualquier nombre de campo, por ejemplo:

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

Ejemplo 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();
}

Otros consejos

Aquí están las palabras reservadas para MS Query:

http://support.microsoft.com/kb/125948

Reglas de nomenclatura de células:

http://ezinearticles.com/?Reglas-para-nombrar-celdas-en-Microsoft-Excel&id=218607

Parece más un problema con las palabras reservadas de SQL.Esto es un buena lista

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top