5

在ac#项目中,我调用了一个存储过程如下:

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

4

2 回答 2

4

我相信您需要将 CommandType 设置为 CommandType.StoredProcedure 才能从存储的过程中获取返回值。请参阅此处接受的答案:Getting return value from stored procedure in ADO.NET

于 2012-07-25T16:56:46.673 回答
2

DataContext如果您不需要 Linq2Sql 映射功能,请勿用于调用 SP。只需SqlCommand用作down.with.the.bass 节目

于 2012-07-25T20:03:08.070 回答