我正在使用OleDb进行MS Access数据库文件。这是片段:
OleDbCommand command = oleDbConnection.CreateCommand();
command.CommandText =
"CREATE TABLE MyTable (" +
"[Count] LONG NOT NULL PRIMARY KEY AUTOINCREMENT, " +
"[TimeAndDateTested] TIMESTAMP NOT NULL, " +
"[SerialNumber] VARCHAR(14) NOT NULL, " +
"[TestResult] BIT NOT NULL)";
command.ExecuteNonQuery();
你知道什么是错的吗?感谢。
答案 0 :(得分:4)
在Access 2003中,此语句将创建我认为您想要的表结构。注意我将第一个字段的名称更改为Kount,因为Count是Access中的保留字。您可以将名称括在方括号中以避免歧义,但我更愿意避免使用保留字作为对象名称。 TIMESTAMP被认为是DATETIME的同义词。 VARCHAR被认为是TEXT的同义词。 BIT将为您提供一个字段类型,Access调用是/否。
CREATE TABLE MyTable2 (
Kount COUNTER CONSTRAINT pkey PRIMARY KEY,
TimeAndDateTested TIMESTAMP NOT NULL,
SerialNumber VARCHAR(14) NOT NULL,
TestResult BIT NOT NULL);
我为Kount分配了一个主键约束,并将约束命名为“pkey”。主键约束隐含了Null和unique,因此您无需单独指定它们。
答案 1 :(得分:3)
我改变了:
"[Count] LONG NOT NULL PRIMARY KEY AUTOINCREMENT, " +
使用:
"[Count] IDENTITY NOT NULL PRIMARY KEY, " +
并且有效。
答案 2 :(得分:2)
对MS Access使用DDL时,您希望使用COUNTER指定自动递增整数字段。