Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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# 过程没有参数,提供的参数为3_C#_Asp.net_Sql Server_Stored Procedures - Fatal编程技术网

C# 过程没有参数,提供的参数为3

C# 过程没有参数,提供的参数为3,c#,asp.net,sql-server,stored-procedures,C#,Asp.net,Sql Server,Stored Procedures,存储过程返回一个值: ALTER PROCEDURE [dbo].[spCaller] AS BEGIN DECLARE @URL nvarchar(255); EXECUTE spBuscarUrl 'MIREX-2017-00001', @url = @URL OUTPUT; SELECT @URL END 当我尝试使用ASP.NET显示值时,出现错误: 过程spCaller没有参数,并且提供了参数 这是我的C#代码: 错误消息非常清楚,当您从c#代码

存储过程返回一个值:

ALTER PROCEDURE [dbo].[spCaller]
AS 
BEGIN
    DECLARE @URL nvarchar(255);  

    EXECUTE spBuscarUrl 'MIREX-2017-00001', @url = @URL OUTPUT;  

    SELECT @URL
END
当我尝试使用ASP.NET显示值时,出现错误:

过程spCaller没有参数,并且提供了参数

这是我的C#代码:


错误消息非常清楚,当您从c#代码传递参数时,存储过程不需要任何参数

实际上,您已经在存储过程中指定了一个变量而不是一个参数,您将需要在SP name参数之后指定它,并使用它的数据类型,在您的示例中,
OUTPUT
关键字作为它的输出参数

应该是:

ALTER procedure [dbo].[spCaller] @URL NVarChar(255) OUTPUT
.......
.......
您的最终存储过程如下所示:

ALTER procedure [dbo].[spCaller] @URL NVarChar(255) OUTPUT
AS BEGIN
EXECUTE spBuscarUrl  
    'MIREX-2017-00001', @url = @URL OUTPUT;  
select @URL
END
您可以看看如何向存储过程传递不同类型的参数


希望有帮助

这一行是错误:

cmd.Parameters.Add("@URL", SqlDbType.NVarChar).Value = Label1.Text.Trim();
@URL
不是存储过程中的参数

请在此处检查正确的语法:


可能的副本请包括
spBuscarUrl
的源代码。
cmd.Parameters.Add("@URL", SqlDbType.NVarChar).Value = Label1.Text.Trim();
CREATE PROCEDURE What_DB_is_that 
     @ID int   
AS    
    SELECT DB_NAME(@ID) AS ThatDB;