Обновление C # TableAdapter и DataSet с несколькими таблицами - PullRequest
1 голос
/ 12 января 2012

Я новичок в C # и мне нужна помощь.

enter image description here

Я просто хочу обновить строку в таблице сеансов с помощью кода ниже.

        dbDataSet db = new dbDataSet();
        SessionTableAdapter sessionTableAdapter = new SessionTableAdapter();
        sessionTableAdapter.Fill(db.Session);
        var session = db.Session.Where(s => s.idSession.Equals(new Guid("{0F0B0E1A-950E-4BCE-9C68-6D1387EDAC90}"))).SingleOrDefault();
        session.endTime = DateTime.Now;
        sessionTableAdapter.Update(db.Session);

Я получил ошибку в "sessionTableAdapter.Update (db.Session)"

An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

Additional information: The record cannot be deleted or changed because table 'PaidLog' includes related records.

Как исправить эту ошибку?

Ответы [ 2 ]

3 голосов
/ 12 января 2012

В сообщении об ошибке все сказано. Таблица сессий имеет отношение внешнего ключа к PaidLog. Сначала вам нужно обновить дочерние строки из этой таблицы.

См. Эту статью о MSDN для получения дополнительной информации в «Обновление двух связанных таблиц в наборе данных с помощью адаптера таблиц» раздел

Или вы можете использовать TableAdapterManager

0 голосов
/ 13 января 2012

Решено!

Сначала я просто отмечаю "Принудить ссылочную целостность".

Но я пытаюсь поставить галочку в поле Каскадное обновление, и это работает!

Я не знаю, почему это работает.

Кто-нибудь знает причину этой вещи?

Кстати, благодаря Махипу.

enter image description here

...