SQLite自动增量问题

时间:2012-10-31 12:16:37

标签: c# sql database sqlite

我在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: 当我加载记录时,我明白了:

enter image description here

ID字段中根本没有数字。

2 个答案:

答案 0 :(得分:5)

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

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

Taken from sqlite.org

SQLFiddle example

修改

作为替代方案,尝试执行

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

答案 1 :(得分: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))