相关疑难解决方法(0)

如何在使用Python在SQLite中插入行后检索插入的id?

如何在使用Python在SQLite中插入行后检索插入的id?我有这样的表:

id INT AUTOINCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50)
Run Code Online (Sandbox Code Playgroud)

我插入一个新行,例如数据username="test"password="test".如何以事务安全的方式检索生成的id?这适用于网站解决方案,其中两个人可能同时插入数据.我知道我可以得到最后一行,但我不认为这是交易安全的.有人可以给我一些建议吗?

python sqlite

156
推荐指数
2
解决办法
10万
查看次数

在C#中使用SQLite.NET获取最后一个插入ID

我有一个简单的问题,一个不那么简单的解决方案......我目前正在将一些数据插入到这样的数据库中:

                kompenzacijeDataSet.KompenzacijeRow kompenzacija = kompenzacijeDataSet.Kompenzacije.NewKompenzacijeRow();
                kompenzacija.Datum = DateTime.Now;
                kompenzacija.PodjetjeID = stranka.id;
                kompenzacija.Znesek = Decimal.Parse(tbZnesek.Text);

                kompenzacijeDataSet.Kompenzacije.Rows.Add(kompenzacija);

                kompenzacijeDataSetTableAdapters.KompenzacijeTableAdapter kompTA = new kompenzacijeDataSetTableAdapters.KompenzacijeTableAdapter();
                kompTA.Update(this.kompenzacijeDataSet.Kompenzacije);

                this.currentKompenzacijaID = LastInsertID(kompTA.Connection);
Run Code Online (Sandbox Code Playgroud)

最后一行非常重要.为什么我提供连接?那么有一个名为last_insert_rowid()的SQLite函数可以调用并获取最后一个插入ID.问题是它绑定到一个连接,.NET似乎重新打开并关闭每个数据集操作的连接.我以为从表适配器获取连接会改变一些事情.但事实并非如此.

有谁知道如何解决这个问题?也许从哪里获得持续的连接?或者更优雅的东西?

谢谢.

编辑:

这也是事务的问题,如果我想使用事务,我需要相同的连接,所以这也是一个问题......

c# sql sqlite

22
推荐指数
4
解决办法
4万
查看次数

标签 统计

sqlite ×2

c# ×1

python ×1

sql ×1