我有一个带有客户ID的table_Project(链接到tbl_Customer)。在tbl_Customer中,我有Customer_ID(作为密钥)和其他一些信息,例如电话,电子邮件等。
要将其从Gridview中删除,请使用以下DeleteCommand:
DeleteCommand="DELETE FROM [tbl_Customer] WHERE [Customer_ID] = @Customer_ID"
但这给了我以下错误:
The DELETE statement conflicted with the REFERENCE constraint "Klant_Relatie". The conflict occurred in database "Database_1", table "dbo.tbl_Project", column 'CustomerID'. The statement has been terminated.
但是通过更新CustomerInfo我没有得到任何错误。我已经看到了C#的不同解决方案,但是我使用.net
有任何想法吗?
您的问题与参照完整性有关。您无法删除的记录( 从表tbl_Customer_目前正在通过一些记录在某个表中引用)( _表table_Project例如)。UPDATE与DELETE除非您要更新密钥,否则与情况不同CustomerID。UPDATE在DELETE删除记录的同时修改记录。
tbl_Customer
table_Project
UPDATE
DELETE
CustomerID
看一下这个例子,
tbl_Customer表
CustomerID CustomerName 1 Hello 2 World
table_Project表
CustomerID ProjectName 1 Webscripting 1 Database Maintenance
您始终可以在2表的记录上执行任何您想做的事情,tbl_customer因为没有引用它的记录。但是在record中1,除非删除表table_Project中的两个记录,否则无法将其删除。您可以修改列,CustomerName但CustomerID如果仍被引用则不能。
2
tbl_customer
1
CustomerName