我有一个简单的问题,但解决方案并不简单...当前,我正在将一些数据插入到数据库中,就像这样:
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);
最后一行很重要。为什么我要提供一个连接?因为有一个 SQLite 函数叫做 last_insert_rowid(),你可以调用它并获得最后插入的 ID。问题是它绑定在一个连接上,而 .NET 似乎为每个数据集操作重新打开和关闭连接。我认为从表适配器获取连接会改变这种情况。但事实并非如此。是否有人知道如何解决这个问题?也许从哪里获取一个不变的连接?或者还有更加优雅的解决方案吗?谢谢。编辑:这也是事务的一个问题,如果想要使用事务,我需要相同的连接,所以这也是一个问题...
SQLiteAsyncConnection
没有那个属性,但是如果您传入一个要保存的对象,该对象的主 ID 属性将会被更新。 - Ted Nyberg