Как использовать 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 как показано ниже.

Другие вопросы по тегам