c# - AUTOINCREMENT 不适用于 OleDbCommand

标签 c# .net database ms-access

我正在使用 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();

你知道这是怎么回事吗?谢谢。

最佳答案

在 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”。 Not Null 和 unique 是主键约束隐含的,所以你不需要单独指定它们。

关于c# - AUTOINCREMENT 不适用于 OleDbCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4789531/

相关文章:

c# - WebClient.DownloadFileAsync 真的这么慢吗?

c# - 如何在C#中获取默认浏览器的图标?

c# - 删除字符串的最佳方法是什么?

sql - 如何将数据库从格式 is 转换为 db3?

c# - 为什么 DataTable.Rows.Count 在删除行后没有改变?

c# - TimeTrigger 函数出错

javascript - 我们如何确定何时在 selenium c# 中使用 JavaScriptExecutor?

.net - 当 .net 中的 RAM 耗尽时,是否有强制程序使用页面文件虚拟内存?

database - 如何优化大型数据库请求

sql - 键中命名的列 "sn"不存在 LINE 6 : PRIMARY KEY (SN, PN, JN)