Как использовать DataContext.ExecuteCommand и получить исполняемое хранимое возвращаемое значение proc?
В проекте 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, или я мог бы также использовать выходной параметр, если требуется.
2 ответа
Я считаю, что вам нужно установить CommandType в CommandType.StoredProcedure, чтобы получить возвращаемое значение из вашего хранимого процесса. Смотрите принятый ответ здесь: Получение возвращаемого значения из хранимой процедуры в ADO.NET
Не использовать DataContext
для вызова SP, если вам не нужна функциональность отображения Linq2Sql. Просто используйте SqlCommand
как показано ниже.