C#TableAdapter和DataSet用多个表更新

时间:2012-01-12 13:15:35

标签: c# dataset tableadapter dataadapter

我是C#的新手,我需要一些帮助。

enter image description here

我只想通过下面的代码更新Session表中的行。

        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 个答案:

答案 0 :(得分:3)

错误消息说明了一切。会话表与PaidLog具有外键关系。您必须先从此表更新子行。

有关“使用TableAdapter更新数据集中的两个相关表”部分的详细信息,请参阅此article on MSDN

或者您可能想要使用TableAdapterManager

答案 1 :(得分:0)

解决了!

首先,我只勾选强制参照完整性。

但我尝试勾选级联更新相关字段并且它有效!

我不知道它为什么会起作用。

有人知道这件事的原因吗?

顺便说一句,感谢Maheep。

enter image description here