[英]The INSERT statement conflicted with the FOREIGN KEY
我從SQL Server得到此錯誤:
INSERT語句與FOREIGN KEY約束“FK”沖突。 沖突發生在數據庫“DATABASENAME”,表“TABLE”,列“UserID”中。 該語句已終止。
這來自Visual Studio 2008:
無法將類型為“System.Object”的對象強制轉換為“System.IConvertible”。
這就是我得到的
CREATE TABLE DATABASENAME.TABLE
(
UserID INT IDENTITY,
...
...
CONSTRAINT PK_Users PRIMARY KEY NONCLUSTERED (UserID),
) ON [PRIMARY]
GO
CREATE TABLE DATABASENAME.OTHERTABLE
(
...
...
ManagerUserID INT NOT NULL,
...
CONSTRAINT FK FOREIGN KEY (ManagerUserID) REFERENCES TABLE (UserID)
) ON [PRIMARY]
GO
存儲過程是:
CREATE PROCEDURE STOREDPROCEDURENAME
(@ManagerUserID int,
...
...
)
AS
INSERT INTO OTHERTABLE(..., ManagerUserID, ...)
VALUES (..., @ManagerUserID, ...)
這來自c#
_projectID = Convert.ToInt32(SqlHelper.ExecuteScalar(
ConfigurationSettings.AppSettings[TimeWeb.Web.Global.CfgKeyConnString],
"STOREDPROCEDURENAME", ..., ..., _managerID, ...));
當我在這種情況下在網頁上添加數據時,我指的是用戶,從我獲得正確的UserID
。 但后來發生了這件事。
所以在TABLE中我當然添加了UserID
,但是當我使存儲過程工作時,會出現第一條消息。
無法意識到我的代碼有什么問題。 多謝你們。
對於您的商店程序。
嘗試
CREATE PROCEDURE STOREDPROCEDURENAME
(@ManagerUserID int,
...
...
)
AS
Begin
if exists(select * from DATABASENAME.TABLE where UserID=@ManagerUserID) --check if pk exists to the ref rable
begin
INSERT INTO OTHERTABLE(..., ManagerUserID, ...)
VALUES (..., @ManagerUserID, ...)
end
End
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.