加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – DELETE语句与REFERENCE冲突

发布时间:2020-12-16 03:59:04 所属栏目:asp.Net 来源:网络整理
导读:我有一个table_Project,其中包含CustomerID(链接到tbl_Customer).在tbl_Customer中,我有Customer_ID(作为密钥)和其他一些信息,如电话,电子邮件等. 要从Gridview中删除它,我使用此DeleteCommand: DeleteCommand="DELETE FROM [tbl_Customer] WHERE [Customer
我有一个table_Project,其中包含CustomerID(链接到tbl_Customer).在tbl_Customer中,我有Customer_ID(作为密钥)和其他一些信息,如电话,电子邮件等.

要从Gridview中删除它,我使用此DeleteCommand:

DeleteCommand="DELETE FROM [tbl_Customer] WHERE [Customer_ID] = @Customer_ID"

但它给了我以下错误:

DELETE语句与REFERENCE约束“Klant_Relatie”冲突.冲突发生在数据库“Database_1”,表“dbo.tbl_Project”,列“CustomerID”中.
该语句已终止.

但是通过更新CustomerInfo,我没有收到任何错误.我已经看到了C#的不同解决方案,但我使用.net

有任何想法吗?

解决方法

您的问题与参照完整性有关.您无法删除某个表中某些记录(例如表table_Project)当前正在引用的记录(来自表tbl_Customer).除非您要更新密钥,否则UPDATE与DELETE不同,在您的案例中为CustomerID.当DELETE删除记录时,UPDATE修改记录.

看看这个例子,

tbl_Customer表

CustomerID  CustomerName
1           Hello
2           World

table_Project表

CustomerID  ProjectName
1           Webscripting
1           Database Maintenance

您可以随时在表tbl_customer的记录2上执行任何操作,因为没有记录引用它.但是在记录1中,除非删除表table_Project中的两个记录,否则无法删除它.您可以修改列CustomerName,但如果仍然被引用则不是CustomerID.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读