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