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

一、问题


二、代码和数据库展示

1、主键表和外建表


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表,但是刚开始的时候就是无从下手,所以当意识到是外键约束的问题之后,气急啊。所以学习还是 要多注意一下,认真一下,会节省很多时间,避免很多错误。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值