【发布时间】:2017-12-31 00:31:57
【问题描述】:
我一直在寻找答案,但找不到,发生了一些非常奇怪的事情。
我有 SQL 存储过程,它以 smallint 形式返回输出参数。
ALTER PROCEDURE [STP_NAME]
@Out_Error_Level Smallint OUTPUT
SELECT @Out_Error_Level = 0
当我通过 SQL Management Studio 执行时,非常简单且完美运行。
现在奇怪的是,当我通过 C# Link 执行时,我得到了“Bigint”。 C#代码也很简单:
DS_RAS_CD_APPEntities2 db = new DS_RAS_CD_APPEntities2();
ObjectParameter outputError = new ObjectParameter("Out_Error_Level", SqlDbType.SmallInt);
var updateProcessesList2 = db.STP_NAME(outputError);
Console.WriteLine(outputError.Value);
现在,当我将 sql 中的输出更改为不同的数字时,我会得到某种数据类型,例如:1 返回 Binary,2 返回 Bit,3 返回 Char,10 返回 Nchar。
当我设置@Out_Error_Level = 35时它结束,那么结果是35。
有什么帮助吗?
【问题讨论】:
标签: c# sql sql-server linq stored-procedures