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();
上面的代码标记语法错误异常,你能帮我纠正查询字符串吗?谢谢。
答案 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,这可以防止出现这种语法错误。