【发布时间】:2011-05-19 11:26:56
【问题描述】:
我有一个不那么简单的解决方案的简单问题...我目前正在将一些数据插入到这样的数据库中:
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);
最后一行很重要。为什么我要提供连接?好吧,有一个名为 last_insert_rowid() 的 SQLite 函数,您可以调用它并获取最后一个插入 ID。问题是它绑定到一个连接,而 .NET 似乎正在为每个数据集操作重新打开和关闭连接。我认为从表适配器获取连接会改变一些事情。但事实并非如此。
有人知道如何解决这个问题吗?也许从哪里获得持续的联系?或者更优雅的东西?
谢谢。
编辑:
这也是事务的问题,如果我想使用事务,我需要相同的连接,所以这也是一个问题......
【问题讨论】: