我在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字段中根本没有数字。
答案 0 :(得分:5)
试
create table mains (id INTEGER PRIMARY KEY, desc varchar(20))
声明为INTEGER PRIMARY KEY的列将自动增量。
作为替代方案,尝试执行
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))