gpt4 book ai didi

c# - 将 int 转换为 nvarchar 时出错

转载 作者:太空狗 更新时间:2023-10-30 00:43:11 26 4
gpt4 key购买 nike

这个错误让我很困惑。我有一个带有两个输出参数的存储过程,定义如下

@agentNumber int OUTPUT,
@currentAgentNum int OUTPUT,

然后使用下面的 SELECT 语句填充它们

SELECT @agentNumber = AgentNumber
FROM AgentIdentification
WHERE AgentTaxId = @ssn

SELECT @currentAgentNum = AgentNumber
FROM UniqueAgentIdToAgentId
WHERE AgentId = @agentId

在数据库中,AgentNumber 在两个表中都定义为 int。但是,当我在 C# 代码中调用此存储过程时,出现 SQL 异常:

Error converting data type int to nvarchar.

如果我将输出参数的数据类型更改为 nvarchar,代码将执行,但它只会返回整数的第一位数字。下面是在 C# 代码中定义变量的方式

SqlParameter outNewAgentNumber = new SqlParameter("@agentNumber", "");//Output parameter - leave blank
SqlParameter outCurrentAgentNumber = new SqlParameter("@currentAgentNum", "");//Output parameter - leave blank

outNewAgentNumber.Direction = ParameterDirection.Output;
outCurrentAgentNumber.Direction = ParameterDirection.Output;

我将这些参数添加到 SqlCommand 对象,指定适当的数据库和 commandType,然后使用 .ExecuteNonQuery() 调用过程.同样,让我真正感到困惑的是错误消息,指出我正在使用 nvarchar 作为数据类型,这只能(据我所知)指的是数据库端的某些内容。然而,正如我所说,我已经双重/三次检查并且 AgentNumber 列都是 int 类型。

编辑

将 sqlParameter 声明更改为起始值 0 已解决此问题。我现在遇到了与其他两个参数相同的问题。

SqlParameter outOperator = new SqlParameter("@operator", "");//Output parameter - leave blank
SqlParameter outDate = new SqlParameter("@date", "");//Output parameter - leave blank

最佳答案

改变

SqlParameter outNewAgentNumber = new SqlParameter("@agentNumber", "");//Output parameter - leave blank 
SqlParameter outCurrentAgentNumber = new SqlParameter("@currentAgentNum", "");//Output parameter - leave blank

SqlParameter outNewAgentNumber = new SqlParameter("@agentNumber", 0);//Output parameter - leave blank 
SqlParameter outCurrentAgentNumber = new SqlParameter("@currentAgentNum", 0);//Output parameter - leave blank

在您的代码中,您最初将值指定为字符串,因为您向它传递了一个字符串 which maps to a varchar when going from the CLR type to the SQL Data Type .

一旦运行时将其视为字符串,它会在整个代码中保持相同的类型,因此如果您分配一个数字 (int) 值,它仍会将其视为字符串。诀窍是首先为其分配正确的数据类型。

关于c# - 将 int 转换为 nvarchar 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12041880/

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