关于.net:如何在C#中以编程方式创建MS Access表?

How do you create an MS Access table in C# programmatically?

1
2
3
4
5
6
7
8
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();

上面的代码标记语法错误异常,您可以帮助我更正查询字符串吗?谢谢。


我建议将结果查询文本粘贴到Access查询中;它会告诉您错误在哪里。

在我的Access XP上,粘贴生成的SQL会在AUTO_INCREMENT上出现语法错误;它应该是AUTOINCREMENT(请参阅Access 2007 SQL数据类型),并应指定为数据类型,而不是约束。
BOOL也给出了一个错误=>使用BIT

有效的结果:

1
2
3
4
5
6
CREATE TABLE MyTable (
               [Count] AUTOINCREMENT NOT NULL PRIMARY KEY ,
               [TimeAndDate] TIMESTAMP NOT NULL ,
               [SerialNumber] VARCHAR( 14 ) NOT NULL ,
               [Result] BIT NOT NULL ,
               UNIQUE ([TimeAndDate]));


您需要一个结尾括号)


在MyTable之后,您要使用一个未括弧的方括号"(")。

要在Access中创建表,我通常使用ADOX,这可以防止这种语法错误。