Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取C中的输出参数值#_C#_Sql_Sql Server_Stored Procedures_Parameters - Fatal编程技术网

C# 获取C中的输出参数值#

C# 获取C中的输出参数值#,c#,sql,sql-server,stored-procedures,parameters,C#,Sql,Sql Server,Stored Procedures,Parameters,我有一个带有输出参数的存储过程: CREATE PROCEDURE [dbo].[myStoredProcedure] (@myValue NVARCHAR(100) OUTPUT) AS BEGIN SET @myValue = (SELECT myValue FROM myTable WHERE something = 1) SElECT @myValue; END 我的C#类: 这是我得到的一个例外: System.InvalidOperationExceptio

我有一个带有输出参数的存储过程:

CREATE PROCEDURE [dbo].[myStoredProcedure]
    (@myValue NVARCHAR(100) OUTPUT)
AS
BEGIN
    SET @myValue = (SELECT myValue FROM myTable WHERE something = 1)
    SElECT @myValue;
END
我的C#类:

这是我得到的一个例外:

System.InvalidOperationException:字符串[0]:Size属性具有 0的大小无效

我不明白的是,我以前使用过这段代码,除了在存储过程中,当我在数据库中创建新记录时,我使用
IDENTITY()
获取输出值,因此类中的参数类型是INT。但在概念上它应该是相同的,但我想我错了,只是不知道为什么

我错过了什么


谢谢

您需要指定保存输出值所需的大小。发件人:

对于具有可变长度类型(例如nvarchar)的输出参数,参数的大小定义了保存输出参数的缓冲区的大小

将代码中输出参数的值设置为与存储过程中的值匹配:

newSqlParam.Size = 100;

默认值为0,这是导致异常的原因。

您需要指定保存输出值所需的大小。发件人:

对于具有可变长度类型(例如nvarchar)的输出参数,参数的大小定义了保存输出参数的缓冲区的大小

将代码中输出参数的值设置为与存储过程中的值匹配:

newSqlParam.Size = 100;

默认值为0,这是导致异常的原因。

代码>选择@myValue
DBCmd.ExecuteNonQuery()无效
选择@myValue
DBCmd.ExecuteNonQuery()无效