Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQLite自动增量问题_C#_Sql_Database_Sqlite - Fatal编程技术网

C# SQLite自动增量问题

C# SQLite自动增量问题,c#,sql,database,sqlite,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(

我在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字段中根本没有数字。

试试看

create table mains (id INTEGER  PRIMARY KEY, desc varchar(20))
声明为整数主键的列将自动递增

编辑 作为替代方法,请尝试执行

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

声明为整数主键的列将自动递增

编辑 作为替代方法,请尝试执行

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

标识不是SQLite语言的一部分。改为使用自动增量:

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


标识不是SQLite语言的一部分。改为使用自动增量:

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


它说:SQLite.SQLiteException:near“AUTOINCREMENT”:语法错误我猜AUTOINCREMENT无效?是的,AUTOINCREMENT有效:。在创建新表之前是否删除了旧表?请使用整数而不是
int
。看见另外,VARCHAR(20)对SQLite没有意义,但它将正确映射到文本。它说:SQLite.SQLiteException:靠近“AUTOINCREMENT”:语法错误我猜AUTOINCREMENT无效?是的,AUTOINCREMENT有效:。在创建新表之前是否删除了旧表?请使用整数而不是
int
。看见另外,VARCHAR(20)对SQLite来说没有意义,但是它会正确地映射到文本。尝试过了,但是请检查我刚才上传的关于问题的图片。这里还有其他错误。请看是的,它可以工作,必须插入空值,谢谢一个lot。请记住,您必须使用
INTEGER
而不是
INT
,因为后者将不会自动递增或填充。尝试过了,但请检查我刚才上传的问题图片。这里还有其他错误吗。请参见“是”,它可以工作,必须插入空值,这要感谢lot。请记住,您必须使用
INTEGER
而不是
INT
,因为后者不会自动递增或填充。