Pergunta

O que os nomes das colunas não pode ser usado ao criar uma planilha do Excel com o ADO.

Eu tenho uma declaração que cria uma página em uma planilha:

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

Eu descobri que usando um nome de Date ou Container coluna irá gerar um erro quando a instrução é executada.

Alguém tem uma lista completa (ou parcial) de palavras que não podem ser usados ??como nomes de coluna? Isto é para uso em um ambiente orientado para o utilizador e que seria melhor para "consertar" as colunas do que a colisão.

O meu trabalho-around para estes é para substituir quaisquer ocorrências de Date ou Container com Date_ e Container_ respectivamente.

Foi útil?

Solução

Você pode usar parênteses para qualquer fieldname, por exemplo:.

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

exemplo completa:

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

Outras dicas

Parece mais como um problema com o SQL palavras reservadas. Esta é uma lista boa

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top