【VB.NET机房重构】外键冲突

一、问题

【VB.NET机房重构】外键冲突_第1张图片

二、代码和数据库展示

1、主键表和外建表

【VB.NET机房重构】外键冲突_第2张图片

2、部分代码展示

 '将注册的学生信息更新到学生信息表
     cmd.CommandText = "Insert into StudentInfo(SID,SName,Sex,class,Phone,Grade,Dept)values(@SID,@SName,@Sex,@Sclass,@Phone,@Grade,@Dept)"
    '将注册的卡号信息更新到卡号信息表
    cmd.CommandText = "Insert into CardInfo(SID,CID,Type,Money,IsCheck,UserID)values(@SID,@CID,@Type,@Money,@IsCheck,@UserID)"
    '将注册金额等信息更新充值记录表
    cmd.CommandText = "Insert into RechargeLog(UserID,CID,Time,RechargeMoney,Money)values(@UserID,@CID,@Time,@RechargeMoney,@Money)"

三、原因

       在建立的外键约束中,因为CardInfo表中的SID 应用到了StudentInfo表中的主键SID ,所以在插入数据时,应该先在StudentInfo表中插入,然后才能向CardInfo中插入。同理,删除数据时,也应该先在StudentInfo表中删除,然后 才能在CardInfo表中删除。

四、小结

       其实这个问题挺简单的,想想也应该是这样先操作StudentInfo表再处理CardInfo表,但是刚开始的时候就是无从下手,所以当意识到是外键约束的问题之后,气急啊。所以学习还是 要多注意一下,认真一下,会节省很多时间,避免很多错误。


你可能感兴趣的:(【VB.NET机房重构】外键冲突)