Нужно получить некоторые данные из SQL, а также вставить без использования параметра out
Привет,
У меня есть хранимая процедура, которая вставляет некоторые данные в таблицу и извлекает обратно некоторые данные в sql. В интерфейсе, использующем c#, мне нужно получить обратно результирующий набор из моей процедуры и использовать его.
Какое утверждение мне нужно использовать? Я обнаружил, что executereader () - это решение, но это не работает. Я не должен использовать параметр out в sql, а также в c# в соответствии со стандартами кодирования компании. Может ли кто-нибудь объяснить это на примере?
хранимая процедура
create procedure name @patientId as begin insert into table values(a,b,c); select * from table where value = a; end
В С#
var reader = cp.executereader(); var a=reader["value"].tostring();
Именно так я реализовал свою функциональность (только репрезентативную).
Что я уже пробовал:
create procedure name @patientId as begin insert into table values(a,b,c); select * from table where value = a; end
В С#
var reader = cp.executereader(); var a=reader["value"].tostring();
Именно так я реализовал свою функциональность (только репрезентативную).
F-ES Sitecore
Ваш SP генерирует два результирующих набора. Вставка создает один (даже если она не извлекает данные, она все равно скажет вам, сколько строк было вставлено, и это генерирует результирующий набор), а выбор создает один (который содержит нужные вам данные). Затем ваш ExecuteReader читает первый набор, вставку, поэтому не видит никаких данных. Самый простой способ справиться с этим-остановить вставку, генерирующую результирующий набор, включив "NOCOUNT"
создать имя процедуры
@patientId
как
начать
УСТАНОВИТЕ NOCOUNT ON
вставить в таблицу значения (a, b, c);
выберите * из таблицы, где значение = a;
конец
Member 10945065
Спасибо за ваш ответ..Надеюсь, это сработает..Позвольте мне проверить, реализовав это.