![](/img/trans.png)
[英]Get return value from stored procedure using ExecuteSqlCommand (using Entity Framework)
[英]How to get list of values from SQL stored procedure using ExecuteSqlCommand
我正在尝试使用以下SQL存储过程基于输入参数在SQL表中获取值列表作为输出。
CREATE PROCEDURE GetFirstNames
@LastName nvarchar(128),
@FirstNames nvarchar(128) OUTPUT
AS
SET @FirstNames = (SELECT FirstName FROM NamesTable WHERE LastName = @LastName)
GO
我正在使用以下代码从表中获取名字的列表。
SqlParameter lastNameParam = new SqlParameter("@LastName", "Smith");
SqlParameter firstNamesParameter = new SqlParameter("@FirstNames", SqlDbType.NVarChar, 128);
firstNamesParameter.Direction = ParameterDirection.Output;
string sql = String.Format("EXEC dbo.GetFirstNames {0}, {1};",
lastNameParam.ParameterName,
firstNamesParameter.ParameterName);
context.Database.ExecuteSqlCommand(sql, lastNameParam, firstNamesParameter);
当我调用ExecuteSqlCommand方法时,出现以下错误:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
如果有人可以帮助我,我将非常感激。 谢谢。
CREATE PROCEDURE GetFirstNames
@LastName nvarchar(128)
AS
SET NOCOUNT ON
SELECT FirstName FROM NamesTable WHERE LastName = @LastName
GO
将修复查询部分,并为您提供可枚举的结果集。 其余的是OP的练习。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.