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

在ac #project中,我调用存储过程如下:

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更改此选项,或者如果需要,我也可以使用输出参数。

我相信您需要将CommandType设置为CommandType.StoredProcedure,以便从存储的proc获取返回值。 请参阅此处接受的答案: 从ADO.NET中的存储过程获取返回值

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