簡體   English   中英

INSERT語句與FOREIGN KEY沖突

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM