Sql INSERT语句与外键约束冲突
错误是: INSERT语句与FOREING键约束“FK\u tblBook\u tblCategory”冲突。这个 数据库“CIEDC”、表“dbo.tblCategory”、列“CatID”中发生冲突。 声明已终止 这是因为我的数据库的关系吗Sql INSERT语句与外键约束冲突,sql,database,vb.net,foreign-keys,Sql,Database,Vb.net,Foreign Keys,错误是: INSERT语句与FOREING键约束“FK\u tblBook\u tblCategory”冲突。这个 数据库“CIEDC”、表“dbo.tblCategory”、列“CatID”中发生冲突。 声明已终止 这是因为我的数据库的关系吗 如何解决此问题?看来txtcontegory.ValueMember的值与数据库中的有效类别ID不对应。我认为有两种情况: 1. 在表dbo.tblBook中,它有一列名为CatID充当dbo.tblCategory表的外键引用。似乎您正在尝试使用尚未创
如何解决此问题?看来
txtcontegory.ValueMember
的值与数据库中的有效类别ID不对应。我认为有两种情况:
1.
在表dbo.tblBook中,它有一列名为CatID充当dbo.tblCategory表的外键引用。似乎您正在尝试使用尚未创建的CatID属性。如果是,请返回并首先创建CatID
2.
可能有多个外键与表相关。
如果您使用的是sql server,那么下面的sql语句将帮助您找到所有的sql语句,请检查并删除剩余的sql语句,祝您好运
myCommand = New SqlCommand(
"INSERT INTO tblBook(BookCode, BookTitle, Author, PublishingYear,
Price, EnterDate, CatID, RackID, Amount)
VALUES('" & txtBookCode.Text & "','" &
txtTitle.Text & "','" &
txtAuthor.Text & "','" &
txtPublishYear.Text & "','" &
txtPrice.Text & "', #" &
txtEnterDate.Text & "#, " &
txtCategory.ValueMember & "," &
txtRack.ValueMember & "," &
txtAmount.Text & ")"
, myConnection)
使用;
去
挑选
f、 名称为外键名称
,对象名称(f.parent\u OBJECT\u id)作为表名称
,列名称(fc.parent\u object\u id,fc.parent\u column\u id)作为约束列名称
,对象名称(f.引用对象id)作为引用对象
,列名称(fc.引用的对象id,fc.引用的列id)作为引用的列名称
,是否已禁用
,删除参考动作描述
,更新参考动作描述
来自sys.foreign_键作为f
内部连接sys.foreign\u key\u列作为fc
在f.object\u id=fc.constraint\u object\u id上
--其中f.parent_object_id=object_id('HumanResources.Employee');
去
挑选
f、 名称为外键名称
,对象名称(f.parent\u OBJECT\u id)作为表名称
,列名称(fc.parent\u object\u id,fc.parent\u column\u id)作为约束列名称
,对象名称(f.引用对象id)作为引用对象
,列名称(fc.引用的对象id,fc.引用的列id)作为引用的列名称
,是否已禁用
,删除参考动作描述
,更新参考动作描述
来自sys.foreign_键作为f
内部连接sys.foreign\u key\u列作为fc
在f.object\u id=fc.constraint\u object\u id上
--其中f.parent_object_id=object_id('HumanResources.Employee');
是的,你是对的!这是因为sql关系,如果可能,请发布有关表的信息,我可以提供更具体的帮助。请开始使用参数,例如@BookTitle,而不是“&txtTitle.Text&”。任何带有单引号的书名都会导致插入失败,并避免SQL注入。它的CREATE TABLE[dbo].[tblCategory]([CatID][int]IDENTITY(1,1)NOT NULL、[RackID][int]NOT NULL、[CategoryName][varchar](50)NULL,约束[PK tblCategory]主键群集([CatID]ASC)
USE <database_name>;
GO
SELECT
f.name AS foreign_key_name
,OBJECT_NAME(f.parent_object_id) AS table_name
,COL_NAME(fc.parent_object_id, fc.parent_column_id) AS constraint_column_name
,OBJECT_NAME (f.referenced_object_id) AS referenced_object
,COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS referenced_column_name
,is_disabled
,delete_referential_action_desc
,update_referential_action_desc
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
ON f.object_id = fc.constraint_object_id
--WHERE f.parent_object_id = OBJECT_ID('HumanResources.Employee');
GO
SELECT
f.name AS foreign_key_name
,OBJECT_NAME(f.parent_object_id) AS table_name
,COL_NAME(fc.parent_object_id, fc.parent_column_id) AS constraint_column_name
,OBJECT_NAME (f.referenced_object_id) AS referenced_object
,COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS referenced_column_name
,is_disabled
,delete_referential_action_desc
,update_referential_action_desc
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
ON f.object_id = fc.constraint_object_id
--WHERE f.parent_object_id = OBJECT_ID('HumanResources.Employee');