2013-06-24 5 views
2

У меня есть хранимая процедура с именем pat_selectPatientById, и эта хранимая процедура возвращает значение true или false с использованием ISNULL(@isEqual, 0) as IsProviderSameAsPCP.Вызов хранимой процедуры и проверка возвращаемого значения

Я пытаюсь вызвать эту хранимую процедуру с использованием метода C#, вызвав Application.WebService.ExecuteQuery("pat_selectPatientById"). Но мне не повезло - может кто-нибудь указать мне в правильном направлении?

Большое спасибо ребята

Код:

declare @isEqual bit = 
    (select 
     top 1 1 as IsEqual 
    from 
     Patient p 
    inner join 
     [Resource] r on p.ProviderId = r.ResourceId 
    where 
     PatientId = @PatientId 
     and p.PrimaryCareProviderId = r.RefPhysId) 
+0

Есть ли метод ExecuteScalar в используемой структуре? –

+0

no нет – Robert

+0

Вы можете использовать собственный код или он должен пройти этот метод, о котором вы упомянули, то есть Application.WebService .. ?? –

ответ

3

Вы должны вернуть значение из хранимой процедуры.

SELECT @isEqual 

Помимо, что вам нужно SqlConnection объект и SqlCommand объект для вызова хранимой процедуры.

conn = new SqlConnection(connectionString); 
conn.Open(); 
SqlCommand cmd = new SqlCommand("IsProviderSameAsPCP", conn); 
cmd.CommandType = CommandType.StoredProcedure; 
rdr = cmd.ExecuteReader(); 

Вы можете использовать rdr объект Переберите результирующего набора.

Вы можете найти строку подключения по адресу:

http://www.connectionstrings.com/

Т.е. для SQL Server 2008:

string connectionString = "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"; 
+0

спасибо, что это сработало !! – Robert

2

Необходимо вернуть значение в выбранный. Следующая строка в вашем прок должен быть

select @isEqual 

т.е. .. объявить @isEqual бит = (выберите сверху 1 1, как IsEqual от пациента р внутренней присоединиться к [ресурс] г на p.ProviderId = r.ResourceId где PatientId = @PatientId и p.PrimaryCareProviderId = r.RefPhysId) выберите @isEqual

ExecuteScalar является команда в C# вы ищете. Вы также можете использовать выходной параметр в сохраненном proc, если у вас есть несколько значений и не хотите возвращать вывод таблицы.