Базовый метод вызова хранимой процедуры и использования возвращаемого значения
Автор:Eve Cole
Время обновления:2009-05-31 00:08:21
Я так и не нашел хорошего способа ссылаться на хранимые процедуры с возвращаемыми значениями, что заставило меня пойти на многие обходные пути при добавлении данных. Недавно, проанализировав много информации, я наконец нашел это в экземпляре Microsoft.
Сначала напишите хранимую процедуру с возвращаемым значением.
создать процедуру имя_процесса
@para1 nchar(20), --input параметры
@para2 int = null out --выходные параметры для использования программой
как
установить nocount на
если (не существует (выберите * у сотрудника, где em_name=@para1 ))
начинать
вставить в значения сотрудника(имя)(@para1)
select @para2=@@identity -- возвращает идентификатор добавленной записи
return 1 — возвращает, были ли данные добавлены успешно
конец
еще
return 0 — возврат ошибки
идти
Затем есть метод вызова хранимой процедуры.
команда sqlcommand;
команда = новая sqlcommand (proc_name, новое sqlconnection (connectionstr));
Command.paraments.add("@para1"),"name1"); //Входные параметры, имя сотрудника
Command.paraments.add(new sqlparament("@para2", //Создаем выходной параметр
SqlDbType.Int //Тип данных параметра
ParamenterDirection.OutPut, //Тип ввода и вывода
0,
0,
строка.Пусто,
DataRowVerstion.Default,
null) //Значение параметра, необходимое при вводе параметров
);
command.commandtype=commandtype.StoredProcedure;
команда.соединение.открыть();
команда.executenonQuery();
int pkid=(int)command.Parameters["@para2"].value //Получаем значение выходного параметра;
команда.соединение.закрыть();
Вот эталонные выходные параметры. Если вы хотите ссылаться на возвращаемое значение (в случае успешного добавления данных), вам нужно только изменить тип ParamenterDirection на returnvalue, а затем изменить имя параметра самостоятельно;