级联更新没有问题,级联删除却特别的慢,慢得惊人,我困惑了...
...
iDataSet.MyClass.Rows[myClassBindingSource.Position].Delete();////????慢慢慢
myClassTableAdapter.Update(iDataSet.MyClass);
iDataSet.MyClass.AcceptChanges();
...
在sqlserver数据库中,有UserInfo用户表[700多条记录],MyClass表;
MyClass是一个自定义类别表,其中的MyClassName是唯一索引;
Myclass表的MyClass字段如下:
MyClassName
-------------
退休
离休
============================
在数据库上,MyClass表和UserInfo表的MyClassName存在约束关系[级联更新和删除],MyClass表为主表,UserInfo表为从表;
iDataSet是个强类型的DataSet,其中包括UserInfo表和MyClass表,并且在iDataSet上存在约束关系:
关系和外键约束,更新和删除规则均是cascade,接收/拒绝规则为none;
更新MyClass表中的字段MyClassName '退休'->'退休123',本地iDataSet.UserInfo表有关联记录700条被更新,数据库也同时更新成功,没有发现任何问题,且速度很快。
部分代码如下:
...
iDataSet.MyClass.Rows[myClassBindingSource.Position].EndEdit();
myClassTableAdapter.Update(iDataSet.MyClass);
iDataSet.MyClass.AcceptChanges();
...
但是:
删除MyClass表中的'退休'这笔记录,部分代码如下:
...
iDataSet.MyClass.Rows[myClassBindingSource.Position].Delete();////????慢慢慢 卡在这里了....
myClassTableAdapter.Update(iDataSet.MyClass);
iDataSet.MyClass.AcceptChanges();
...
发现卡在下面这里了,
iDataSet.MyClass.Rows[myClassBindingSource.Position].Delete();
找了很久,试了很久都找不到原因,非常郁闷。
我在数据库中删除myclass表中的'退休'这条记录,userinfo表的关联记录700多条瞬间就级联删除掉了。
困惑啊我。。。。。
请高手给我支招啊,我太苦闷了.....
解决问题者,我另外加50分。。。。