У меня есть простая проблема с не очень простым решением... В настоящее время я вставляю некоторые данные в базу данных следующим образом:
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(), которую вы можете вызвать и получить последний идентификатор вставки. Проблема заключается в привязке к соединению, и .NET, похоже, снова открывает и закрывает соединения для каждой операции набора данных. Я думал, что получение соединения из адаптера стола изменит ситуацию. Но это не так.
Кто-нибудь знает, как это решить? Может быть, где получить постоянную связь? Или, может быть, что-то более элегантное?
Спасибо.
ИЗМЕНИТЬ:
Это также проблема с транзакциями, мне понадобится одно и то же соединение, если я захочу использовать транзакции, так что это тоже проблема...