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;