作者:journeylis-1998_246 | 来源:互联网 | 2023-05-18 17:04
那么主要的问题是我在尝试插入数据条目时遇到错误.
(不自动递增主键)
表创建:
SQLiteConnection _sqliteCon = new SQLiteConnection(_connectStr);
_sqliteCon.Open();
string query5 = "CREATE TABLE Merkmal(MerkmalID INT PRIMARY KEY NOT NULL, ";
query5 += "MerkmalName_FR TEXT);";
SQLiteCommand command5 = new SQLiteCommand(query5, _sqliteCon);
command5.ExecuteNonQuery();
_sqliteCon.Close();
这似乎工作正常.
现在为插入:( 我假设这是我的错误发生的地方)
SQLiteConnection _sqliteCon = new SQLiteConnection(_connectStr);
_sqliteCon.Open();
SQLiteCommand insertSQL = new SQLiteCommand("INSERT INTO Merkmal(MerkmalID,MerkmalName_FR) VALUES (?,?)",_sqliteCon);
insertSQL.Parameters.Add(new SQLiteParameter("param1",null));
insertSQL.Parameters.Add(new SQLiteParameter("param2",SomeString));
insertSQL.ExecuteNonQuery();
_sqliteCon.Close();
有些事情值得注意:
我试图根本没有放价值.(使用硬编码值)
尝试插入时,我收到非null异常错误.
创建或插入表的正确方法是什么,以便自动增加主键
先谢谢你们.
1> Colonel Thir..:
更改MerkmalID INT PRIMARY KEY NOT NULL
到MerkmalID INTEGER PRIMARY KEY
SQLite中的大多数表都有一rowid
列(也称为oid
和_rowid_
).通过将列声明为INTEGER PRIMARY KEY
(但不是INT
,BIGINT
等等,即使它们引用相同的类型),该列也会成为该列的别名rowid
.
当您插入省略行或NULL时rowid
,SQLite会为您选择一个唯一的ID.
另请参见:ROWID和INTEGER PRIMARY KEY