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.
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
Voici les mots réservés pour MS Query:
http://support.microsoft.com/kb/125948
Règles de dénomination des cellules:
http://ezinearticles.com/?Rules -For-Naming-Cells-in-Microsoft-Excel & id = 218607
Cela ressemble plus à un problème de mots réservés SQL. Ceci est un liste de qualité