仍然存在:INSERT语句与FOREIGN KEY约束冲突

时间:2013-12-11 06:07:48

标签: c# sql sql-server

我一直遇到这个麻烦的错误。我已经理解了错误的含义,即你在另一个表中不存在的表中插入一个值。我已经尝试手动传递makerap字符串,并在传递它之前将其放在字符串变量中。但我仍然不断收到这个错误。

string whoAdd = "makerap";

//txnDetails.WhoAdded = "makerap";
txnDetails.WhoAdded = whoAdd;

当我评论上面的第二行时,ff。错误弹出:

Procedure or function 'sp_AddNewTxnDetails' expects parameter '@WhoAdded', which was not supplied.  

这将完全合理,因为我从传递的参数列表中删除了WhoAdded参数。但是当我尝试再次传递WhoAdded参数时,事情就没有意义了。

The INSERT statement conflicted with the FOREIGN KEY constraint "FK__tb_Transa__Recor__4E88ABD4". The conflict occurred in database "CBCFX", table "dbo.tb_Users", column 'UserName'. The statement has been terminated. 

我已检查,仔细检查,甚至TRIPLE-CHECKED我的tb_Users中有一个条目,其UserName主键为makerap

关于可能导致这种情况的任何想法?

EDIT1 :添加整个存储过程...

ALTER procedure [dbo].[sp_AddNewTxnDetails]
@BranchCode nvarchar(5),
@AccountNo nvarchar(20) = null,
@ReferenceNo nvarchar(20),
@TxnDate nvarchar(20),
@TxnType nvarchar(5),
@CCYCode nvarchar(5),
@CCYAmount numeric(18,2),
@RecordStatus nvarchar(5),
--@RecordStatusDate nvarchar(20),
@RecordStatusApprovedBy nvarchar(20),
--@DateAdded nvarchar(20),
@WhoAdded nvarchar(20)
AS
BEGIN
IF @AccountNo = ''
    SET @AccountNo = null

INSERT INTO tb_TransactionDetails
(
    BranchCode, AccountNo,
    ReferenceNo, TxnDate,
    TxnType, CCYCode,
    CCYAmount, RecordStatus,
    RecordStatusDate, RecordStatusDateApprovedBy,
    DateAdded, WhoAdded
)

VALUES
(
    @BranchCode, @AccountNo,
    @ReferenceNo, @TxnDate,
    @TxnType, @CCYCode,
    @CCYAmount, @RecordStatus,
    SYSDATETIME(), @RecordStatusApprovedBy,
    SYSDATETIME(), @WhoAdded
)

END 

EDIT2: 更疯狂的是,所有这一切实际上在昨天工作,我设法添加3条记录没有问题。我很确定我今天没有触及任何代码,现在它将不再起作用了。

0 个答案:

没有答案
相关问题