我一直遇到这个麻烦的错误。我已经理解了错误的含义,即你在另一个表中不存在的表中插入一个值。我已经尝试手动传递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条记录没有问题。我很确定我今天没有触及任何代码,现在它将不再起作用了。