gpt4 book ai didi

sql - 存储过程需要参数 : Parameter is shown in profiler . ..?

转载 作者:行者123 更新时间:2023-11-30 23:48:50 25 4
gpt4 key购买 nike

我正在使用 SqlQuery()DbContext 调用存储过程。当我运行查询时,出现错误 Procedure or function 'p_Insert_Phones' expects parameter '@Number', which was not supplied. 我在这里错过了什么?我看到了 @Number 参数。

declare @p5 nvarchar(255)

set @p5=NULL

exec sp_executesql N'p_Insert_Phones',
N'@Number int,
@PhoneTypeId int,
@ReturnId nvarchar(255) output',
@Number=0,
@PhoneTypeId=0,
@ReturnId=@p5 output

select @p5

编辑

过程定义

CREATE PROCEDURE [dbo].[p_Insert_Phones]
(
@Number int,
@PhoneTypeId int,
@ReturnId uniqueidentifier out
)
AS
DECLARE @id TABLE(
ReturnColId uniqueidentifier
)

BEGIN TRAN
INSERT INTO Phones ([Number],[PhoneTypeId])

OUTPUT inserted.Id
INTO @id
VALUES (@Number,@PhoneTypeId)
COMMIT TRAN

SET @ReturnId = (SELECT ReturnColId FROM @id)

最佳答案

请尝试以下操作:

this.context.Database.SqlQuery<string>("p_Insert_Phones @Number = {0}, @PhoneTypeId = {1}", 0, 0);

当然,this.context 是您要使用的上下文。 SqlQuery 方法的通用类型参数是查询结果的返回类型,在您的例子中是一个 nvarchar,它会导致字符串类型。

(未经测试,但它是基于我在我的一个项目中某处使用的代码的模型)。

关于sql - 存储过程需要参数 : Parameter is shown in profiler . ..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com