has*_*him 1 c# t-sql sql-server sql-server-2012
我有两个表,一对一的关系我在项目表的 ID 中创建了 projectDetails FK 的 DetailsID:
projects:
ID, //has FK With DetailsID in Details table & auto identity (1,1)
ProjectName,
Areas,
PaymentSystem,
ReceivedDate,
PropertyClassification,
ProjectImage
ProjectDetails:
DetailsID ,auto identity ( 1,1)
ProjectDetailName,
ProjectDetailImage
Run Code Online (Sandbox Code Playgroud)
我试图在项目表中插入新记录,在这行代码中给了我这个错误:
con.Open();
comm.ExecuteNonQuery(); // when execute
Run Code Online (Sandbox Code Playgroud)
System.Data.SqlClient.SqlException: 'INSERT 语句与 FOREIGN KEY 约束“FK_Projects_ProjectDetails”冲突。冲突发生在数据库“AlamaarRealEstate”、表“dbo.ProjectDetails”、“DetailsID”列中。
这是我要插入的存储:
ALTER proc [Insert_Project]
@Projectname NVARCHAR(MAX) ,
@areas NVARCHAR(MAX) ,
@Paymentsystem NVARCHAR(MAX) ,
@Receiveddate date ,
@Classification NVARCHAR(MAX) ,
@Projectimage Nvarchar(MAX)
as
INSERT INTO dbo.Projects
(
ProjectName,
Areas,
PaymentSystem,
ReceivedDate,
PropertyClassification,
ProjectImage
)
VALUES
(
@Projectname ,
@areas,
@Paymentsystem ,
@Receiveddate ,
@Classification,
@Projectimage
)
Run Code Online (Sandbox Code Playgroud)
小智 6
问题解释了答案。Referential Integrity未正确维护,您正在尝试插入主值不存在的子表。请先插入值Project_details。这将解决您的问题。如果你没有什么这会抛出错误,只需在插入前检查DetailIDinProjects表是否存在。
| 归档时间: |
|
| 查看次数: |
5471 次 |
| 最近记录: |