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);

ID ではなく desc を追加したところ、 id フィールドを自動インクリメントする必要があると思いますが、そうではありません。代わりに、新しいレコードを追加するたびに dess が追加され、ID フィールドが空になります

編集:私は使ってみました:

id int PRIMARY KEY AUTOINCREMENT

しかし、エラーが発生しました:

SQLite.SQLiteException: near "AUTOINCREMENT":

EDIT 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 に答える