2011-01-24 110 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(); 

代码上面的标志语法错误异常,你能帮我纠正查询字符串吗?谢谢。如何以编程方式在C#中创建MS Access表?

回答

3

我建议粘贴生成的查询文本到Access查询。它会告诉你哪里出错

在我访问XP,粘贴得到的S-。 QL在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])); 
+0

你怎么能在Access中做到这一点?你在哪里粘贴了SQL语句? – 2011-08-04 06:46:59

1

只是MyTable的后您使用开括号“(”你不要靠近。

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

+0

只是修正,但其仍是得到一个错误。 – 2011-01-24 12:06:16

2

你需要一个结束括号)

+0

只是纠正它,但仍然得到相同的错误。 – 2011-01-25 12:23:33

相关问题