如何使用DataContext.ExecuteCommand并获取执行的存储过程返回值?

时间:2012-07-25 16:42:50

标签: c# asp.net-mvc-3 sql-server-2008 stored-procedures return-value

在c#项目中,我按如下方式调用存储过程:

System.Data.Linq.DataContext dataContext = MembershipContext.GetContext(connectionString);
int returnValue = dataContext.ExecuteCommand("EXEC usp_SomeProcedure {0}, {1}, {2}", param1, param2, param3);

但是,ExecuteCommand返回受影响的行数,而不是我的存储过程返回值。获得这个价值的最简单方法是什么?我需要这个,因为SP在成功时返回0,如果发生错误则返回正的int值。

现在,存储过程使用RETURN输出其返回值。但是,我可以为SELECT更改此选项,或者如果需要,我也可以使用输出参数。

2 个答案:

答案 0 :(得分:4)

我认为您需要将CommandType设置为CommandType.StoredProcedure,以便从存储的proc获取返回值。请在此处查看已接受的答案:Getting return value from stored procedure in ADO.NET

答案 1 :(得分:2)

如果您不需要Linq2Sql映射功能,请不要使用DataContext来调用SP。只需使用SqlCommand作为down.with.the.bass shows