gpt4 book ai didi

c# - 执行 IDbConnection.Query 给出异常 : Conversion failed when converting the nvarchar value 'Memory to data type int'

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:59 26 4
gpt4 key购买 nike

我最近在 Azure 上为我的网络应用程序创建了一个存储过程。我使用 ASP.net core 2.0 来制作它。在存储过程中,我想获取特定的 PC 组件类型,例如:“主板”。之后我想将该类型返回给我的应用程序。

这是我的存储过程

CREATE PROCEDURE GetCurrentType 
@BuildID INT = 1,
@t NVARCHAR(128) OUTPUT,
@Index INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;

SELECT @Index = COUNT(*)
FROM Partslist
WHERE buildId = @BuildID;

SELECT @t = _Type
FROM ComponentTypes
WHERE PriorityID = @Index;

RETURN @t
END

存储过程计算用户选择的所有已选择的部分。它使用该编号在表 ComponentTypes 中查找下一个类型以供用户选择。该类型将被返回。 BuildID 现在需要为 1,但稍后我会将其更改为实际参数。

C#代码:

IEnumerable<string> test = db.Query<string>
(
"GetCurrentType",
new {BuildID = 1, t = "", Index = 0},
commandType: CommandType.StoredProcedure
);

这应该获取类型并在测试 IEnumerable 中设置它。但是当我运行它时出现以下错误:

System.Data.SqlClient.SqlException: 'Conversion failed when converting the nvarchar value 'Memory' to data type int.'

我也尝试使用 DynamicParameters,但这给了我同样的错误。真正奇怪的是我的数据库中没有内存表或列。

最佳答案

@t NVARCHAR(128) OUTPUT,

RETURN @t

RETURN 值始终是数字;来自 RETURN :

Syntax

RETURN [ integer_expression ]

Arguments

integer_expression

Is the integer value that is returned. Stored procedures can return an integer value to a calling procedure or an application.

Return Types

Optionally returns int.

基本上:不要RETURN 这个。 SELECT 它,或使用 OUTPUT 参数。

我的建议是SELECT

关于c# - 执行 IDbConnection.Query 给出异常 : Conversion failed when converting the nvarchar value 'Memory to data type int' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49316035/

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