1

我在 C# 中创建了一个 SQLite 数据库,并使用该查询创建了一个表。

string q = "create table mains ( id int IDENTITY, desc varchar(20), PRIMARY KEY(id) )"; 
ExecuteQuery(q);

我尝试添加这样的记录:

string txtSQLQuery = "insert into  mains (desc) values ('" + textBox1.Text + "')";
ExecuteQuery(txtSQLQuery);

我只是添加了一个 desc 而不是 ID ,我想它应该自动增加 id 字段,但它没有。相反,每次我添加新记录时,它都会添加 desc 并且 ID 字段为空

编辑:我尝试使用:

id int PRIMARY KEY AUTOINCREMENT

但得到错误:

SQLite.SQLiteException: near "AUTOINCREMENT":

编辑 2:当我加载记录时,我明白了:

在此处输入图像描述

ID 字段中根本没有数字。

4

2 回答 2

5

尝试

create table mains (id INTEGER  PRIMARY KEY, desc varchar(20))

声明为 INTEGER PRIMARY KEY 的列将自动递增。

取自 sqlite.org

SQLFiddle 示例

编辑

作为替代尝试执行

string txtSQLQuery = "insert into mains (id, desc) values (NULL, '" + textBox1.Text + "')";
于 2012-10-31T12:18:51.067 回答
2

IDENTITY 不是 SQLite 语言的一部分。改用 AUTOINCREMENT:

 create table mains ( id int AUTOINCREMENT, desc varchar(20), PRIMARY KEY(id) )

或者

 create table mains ( id int PRIMARY KEY AUTOINCREMENT, desc varchar(20))
于 2012-10-31T12:20:46.713 回答