2013-06-24 82 views
2

我有一個存儲過程稱爲pat_selectPatientById和真或假的使用ISNULL(@isEqual, 0) as IsProviderSameAsPCP該存儲過程返回。調用存儲過程和檢查返回值

我試圖通過調用Application.WebService.ExecuteQuery("pat_selectPatientById")調用使用C#方法,此存儲過程。但我沒有任何運氣 - 有人能指引我走向正確的方向嗎?

非常感謝球員

代碼:

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

沒有沒有 – Robert

+0

您可以使用自定義代碼還是必須通過這個方法,你所提到的,即Application.WebService ..? –

回答

3

你需要從存儲過程返回值。

SELECT @isEqual 

除此之外,你需要一個SqlConnection對象和SqlCommand對象調用存儲過程。可以使用rdr對象循環遍歷結果集。

您可以在您的連接字符串:

http://www.connectionstrings.com/

即對於SQL Server 2008

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

感謝這工作! – Robert

2

您需要在select返回值。在PROC下一行需要是

select @isEqual 

即.. 聲明@isEqual位= (選擇 頂部11從 患者P內加入[資源] R 上ISEQUAL p.ProviderId = r.ResourceId 其中 PatientId = @PatientId 和p.PrimaryCareProviderId = r.RefPhysId) 選擇@isEqual

的ExecuteScalar在C#中,你正在尋找的命令。如果您有多個值並且不想返回表輸出,您也可以在存儲過程中使用輸出參數。