2011-01-24 1 views
1
command.CommandText = "CREATE TABLE MyTable (" + 
       "[Count] INT NOT NULL AUTO_INCREMENT PRIMARY KEY ," + 
       "[TimeAndDate] TIMESTAMP NOT NULL ," + 
       "[SerialNumber] VARCHAR(14) NOT NULL ," + 
       "[Result] BOOL NOT NULL ," + 
       "UNIQUE ([TimeAndDate]))"; 

command.ExecuteNonQuery(); 

Code au-dessus des drapeaux erreur de syntaxe exception, pouvez-vous m'aider à corriger la chaîne de requête? Je vous remercie.Comment créer une table MS Access en C# par programme?

Répondre

3

Je vous suggère de coller le texte de la requête résultant dans une requête d'accès;. il vous dira où l'erreur est

Sur mon XP Access, coller le S résultant. QL a donné une erreur de syntaxe sur AUTO_INCREMENT; il doit être AUTOINCREMENT (voir Access 2007 SQL data types) et être spécifié en tant que type de données, pas une contrainte. BOOL a également donné une erreur => utilisation BIT

Résultat qui a travaillé:

CREATE TABLE MyTable (
       [Count] AUTOINCREMENT NOT NULL PRIMARY KEY , 
       [TimeAndDate] TIMESTAMP NOT NULL , 
       [SerialNumber] VARCHAR(14) NOT NULL , 
       [Result] BIT NOT NULL , 
       UNIQUE ([TimeAndDate])); 
+0

Comment pouvez-vous faire cela dans Access? Où avez-vous coller l'instruction SQL? –

+0

Créer une nouvelle requête; Voir le menu affiche Design, Datasheet et SQL (ou quelque chose du genre). Choisissez SQL. Vous pouvez également le coller dans une commande appropriée dans la fenêtre immédiate de l'éditeur VBA/éditeur de code (Alt-F11) (Ctrl-G), par ex. currentdb.Execute ("bla") (où bla est l'instruction sql). Pour les nouvelles versions d'accès, vous devrez peut-être définir une référence à la bibliothèque dao si ... – reiniero

1

Juste après MyTable vous utilisez un support ouvert « (», que vous ne fermez pas.

Pour créer des tables dans Access, je l'utilise normalement ADOX, ce qui empêche ce genre d'erreurs de syntaxe.

+0

Juste corriger, mais il est encore l'obtenir une erreur. –

2

Vous besoin d'une parenthèse de fin )

+0

Juste corrigé mais toujours obtenir la même erreur. –

Questions connexes