4

CustomerID を含む 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を使用しています

何か案は?

4

3 に答える 3

5

クライアントがプロジェクトによって参照されている場合、クライアントを削除することはできません..それがエラーの意味です..

私はあなたのことを理解していません

C#のさまざまなソリューションを見てきましたが、.netを使用しています

ただし、ここにはさまざまな解決策があります。

  1. 古いプロジェクト (削除したいプロジェクト) にリンクされているすべてのプロジェクトが参照するクライアントを変更します。
  2. ドロップ制約 (あまり良いオプションではありません)
  3. クライアントを削除する前にプロジェクトを削除します (手動またはカスケード削除を使用)
于 2013-04-12T12:06:17.940 に答える
4

あなたの問題は、参照整合性と関係があります。特定のテーブル (テーブルなど) 内のいくつかのレコードによって現在参照されているレコードを (テーブルからtbl_Customer)削除することはできません。あなたの場合、キーを更新していない限り、 とは異なります。レコードを削除しながら、レコードを変更します。table_ProjectUPDATEDELETECustomerIDUPDATEDELETE

この例を見てください。

tbl_Customer テーブル

CustomerID  CustomerName
1           Hello
2           World

table_プロジェクト テーブル

CustomerID  ProjectName
1           Webscripting
1           Database Maintenance

テーブルを参照しているレコードがないため2、テーブルのレコードでいつでも好きなことを行うことができます。tbl_customerしかし record1では、 table から 2 つのレコードを削除しない限り削除できませんtable_Project。列を変更できますが、まだ参照されている場合は変更できCustomerNameません。CustomerID

于 2013-04-12T12:10:29.583 に答える