最近在学ADO.NET,发现一个奇怪的问题,请诸位高手指教。以下是发生异常的函数。
public bool FillDatabase(SwmsDb.SwmsData sDb)
{
    bool bRet = false;
    try
    {
sDb.Clear();
if(System.Data.ConnectionState.Closed == OleDbConnectPcms.State)
{
    OleDbConnectPcms.Open();
}
sDb.EnforceConstraints = false;
int nCount = 0;
         nCount = OleDbAdpSwUsersInfo.Fill(sDb.Tables["SwUsersInfo"]);
nCount = OleDbAdpSwSectionMaster.Fill(sDb.Tables["SwSectionMaster"]);
nCount = OleDbAdpSwTermMaster.Fill(sDb.Tables["SwTermMaster"]);
sDb.EnforceConstraints = true;
this.OleDbConnectPcms.Close();
bRet = true;
    }
...
}
SwmsDb.SwmsData sDb 是强类型的DataSet(xsd格式)。SwSectionMaster是父表,SwTermMaster是子表。我在第一次执行fillDataBase函数的时候,执行成功,接着执行第二次的时候,走到sDb.EnforceConstraints = true;时fill的数据都能取到,但是约束强制执行时,就报错了,错误消息是,制约无效,违反外键KEY约束。请高人指点一二,在下感激不尽。