gpt4 book ai didi

c# - 自动递增主键的SQLite表

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:37 26 4
gpt4 key购买 nike

好吧,主要问题是尝试插入数据条目时出现错误。

(不自动递增主键)

表创建:

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异常错误。


什么是创建或插入表以使其自动递增主键的正确方法

在此先谢谢大家。

最佳答案

MerkmalID INT PRIMARY KEY NOT NULL更改为MerkmalID INTEGER PRIMARY KEY

SQLite中的大多数表都有一个rowid列(也别名为oid_rowid_)。通过将列声明为INTEGER PRIMARY KEY(即使它们引用的是相同类型,也不能声明INTBIGINT等),该列将成为rowid的别名。

当您插入省略的行或NULL rowid时,SQLite会为您选择一个唯一的ID。

另请参阅:ROWIDs and the INTEGER PRIMARY KEY

关于c# - 自动递增主键的SQLite表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28963990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com