当前位置:编程学习 > C#/ASP.NET >>

请问,DataSet中使用外键约束

下面这段话,摘自《ADO.NET 2.0 技术内幕》的7.2.3节中的第2点,后面的框框里面的话:



  对于从本书所学到的知识,您可能会感到奇怪。例如,我不明白为什么即使在定义了外键约束的情况下,也可能在数据库和DataSet中出现“孤立”数据呢?
  您不相信我?您可以对最喜爱的Northwind数据库运行下面的查询:
  UPDATE Orders SET CustomerlD = NULL WHERE CustomerlD ='ALFKI '
这个査询会成功,在您的Orders表中会有不属于Customers表中客户的订单。
 为了证明在Orders表中有外键约束,运行下面的査询,如果Customers表中没有一 行的CustomerlD为ZZZZZ,那么此査询会失败。
UPDATE Orders SET CustomerlD = 'ZZZZZ ' WHERE CustomerlD ='ANTON'
  有一些行不受数据库约束限制,在这些行中,在外键约束所定义的至少一列中包含Null值。与此类似,如果DataColumn中用于定义关系的值被设置为DBNull.Value,那么DataSet允许存在独立子行。在定义数据库和DataSet的架构时要记住这一点。



问题:
1:此书为什么提出问题,不解决问题啊?是啊,为什么即使在定义了外键约束的情况下,也可能在数据库和DataSet中出现“孤立”数据呢?为什么呢?

2:最后一句红色的,是什么意思啊,外键列中运行出现null值吗?主键都不允许出现null值,外键怎么运行出现null值啊
--------------------编程问答-------------------- 在线...
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,