Question

Quels noms de colonne ne peuvent pas être utilisés lors de la création d'une feuille de calcul Excel avec ADO.

J'ai une déclaration qui crée une page dans une feuille de calcul:

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

J'ai constaté que l'utilisation d'un nom de colonne de Date ou Container génèrerait une erreur lors de l'exécution de l'instruction.

Quelqu'un a-t-il une liste complète (ou partielle) de mots qui ne peuvent pas être utilisés comme noms de colonnes? Ceci est destiné à être utilisé dans un environnement piloté par l'utilisateur et il serait préférable de "réparer" les colonnes que de planter.

Mon solution consiste à remplacer les occurrences de Date ou Container par Date _ et Container _ . respectivement.

Était-ce utile?

La solution

Vous pouvez utiliser des crochets pour n’importe quel nom de champ, par exemple:

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

Exemple complet:

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

Autres conseils

Cela ressemble plus à un problème de mots réservés SQL. Ceci est un liste de qualité

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top