INSERT 语句与 COLUMN FOREIGN KEY 约束 'FK_NewsInfo_NewsTypeInfo' 冲突。

时间:2021-07-31 00:35:31
System.Data.SqlClient.SqlException: INSERT 语句与 COLUMN FOREIGN KEY 约束 'FK_NewsInfo_NewsTypeInfo' 冲突。该冲突发生于数据库 'FarmerSite',表 'NewsTypeInfo', column 'NType_ID'。
语句已终止。
  在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
  在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
  在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
  在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
  在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
  在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
  在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
  在 DataFactory.DataAccess.ExcuteNonQuery(String SQL)
insert into NewsInfo (News_title,News_Content,News_Source,News_TypeId,News_PublishId,News_Ok) values('12','<div>wteryty </div>','11','11','11','11') 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Exception: System.Data.SqlClient.SqlException: INSERT 语句与 COLUMN FOREIGN KEY 约束 'FK_NewsInfo_NewsTypeInfo' 冲突。该冲突发生于数据库 'FarmerSite',表 'NewsTypeInfo', column 'NType_ID'。
语句已终止。
  在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
  在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
  在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
  在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
  在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
  在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
  在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
  在 DataFactory.DataAccess.ExcuteNonQuery(String SQL)
insert into NewsInfo (News_title,News_Content,News_Source,News_TypeId,News_PublishId,News_Ok) values('12','<div>wteryty </div>','11','11','11','11')

源错误: 


行 82:         DataAccess da = new DataAccess();
行 83:         da.Open(DataFactory.DbType.DataBaseType.Sql);
行 84:         da.ExcuteNonQuery(sqlStr);
行 85:         da.Close();
行 86:        //Page.ClientScript.RegisterStartupScript(this.GetType(), "sss", "<script language='javascript' type='text/javascript'>window.alert('添加成功!');</script>");
 这个是怎么回事啊?我的那两个表明明是应该有关系的啊,请问下要怎么改啊

8 个解决方案

#1


你设置了外键约束
要先禁用约束,或删除约束再Insert

#2


或者根据约束条件,往2个表中同时Insert数据

#3


但是我两个表是有关系的啊,主键是NType_ID,外键是News_TypeId。如果先禁用约束,或删除约束再Insert数据的话,插入数据后二者的数据是否存在不一致的问题啊

#4


肯定是主外键约束的问题,仔细检查你的表结构是否合理!

#5


或者根据约束条件,往2个表中同时Insert数据
或者写一个触发器,如果表a插入了数据,触发器往表b插入相应数据

引用 3 楼 yaoxy 的回复:
但是我两个表是有关系的啊,主键是NType_ID,外键是News_TypeId。如果先禁用约束,或删除约束再Insert数据的话,插入数据后二者的数据是否存在不一致的问题啊

#6


哦,谢谢啊,才开始学的,不知道触发器怎么写呢

#7


删除外键约束
参考
http://www.cnblogs.com/xiaobaidhg/archive/2007/03/26/688325.html

#8


不是很了解 支持下哈

#1


你设置了外键约束
要先禁用约束,或删除约束再Insert

#2


或者根据约束条件,往2个表中同时Insert数据

#3


但是我两个表是有关系的啊,主键是NType_ID,外键是News_TypeId。如果先禁用约束,或删除约束再Insert数据的话,插入数据后二者的数据是否存在不一致的问题啊

#4


肯定是主外键约束的问题,仔细检查你的表结构是否合理!

#5


或者根据约束条件,往2个表中同时Insert数据
或者写一个触发器,如果表a插入了数据,触发器往表b插入相应数据

引用 3 楼 yaoxy 的回复:
但是我两个表是有关系的啊,主键是NType_ID,外键是News_TypeId。如果先禁用约束,或删除约束再Insert数据的话,插入数据后二者的数据是否存在不一致的问题啊

#6


哦,谢谢啊,才开始学的,不知道触发器怎么写呢

#7


删除外键约束
参考
http://www.cnblogs.com/xiaobaidhg/archive/2007/03/26/688325.html

#8


不是很了解 支持下哈