如何以编程方式在C#中创建MS Access表?

时间:2011-01-24 11:15:35

标签: c# .net database winforms ms-access

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

上面的代码标记语法错误异常,你能帮我纠正查询字符串吗?谢谢。

3 个答案:

答案 0 :(得分:3)

我建议将生成的查询文本粘贴到Access查询中;它会告诉你错误的位置。

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

结果有效:

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

答案 1 :(得分:2)

您需要一个结束括号)

答案 2 :(得分:1)

在MyTable之后,你使用一个开括号“(”,你没有关闭。

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