如何从C#调用存储过程,并获取返回值?

时间:2016-05-05 18:37:05

标签: c# sql-server visual-studio stored-procedures

我在SQL Server中创建了一个存储过程,并加载到我的Visual Studio项目中的a.dbml数据库文件中。该过程称为storedprocedure1(System.String name, System.Int32 code)

现在在我的MVC控制器中(我们称之为FooController),我正在编写一个方法来从存储过程中获取结果。我该怎么做?

数据库类:

namespace App.Repo.App_Data{
    [global::System.Data.Linq.Mapping.DatabaseAttribute(Name="Application")]
    public partial class APPDatacontext : System.Data.Linq.DataContext{ /* ... */}
}

控制器类

namespace App.Controllers{
    public class FooController : Controller{
        private string getResult(string name, int code){
            // call and get result from storedprocedure1
        }
    }
}

SQL Server

ALTER PROCEDURE storedprocedure1 (
    @name varchar(10),
    @code int
    @result varchar(50) OUTPUT
)
AS

    SELECT --blah blah blah

GO

1 个答案:

答案 0 :(得分:2)

您不能使用RETURN返回过程中的值。 RETURN值是一个整数,用于提供指示执行状态的值。如果您希望从过程中返回值,则应使用OUTPUT变量。

https://msdn.microsoft.com/en-us/library/ms378108%28v=sql.110%29.aspx