2010-01-27 122 views
1

我正在一個wcf應用程序,我想通過wcf訪問表中的某些列(最好通過存儲過程)並將它傳遞給客戶端。我在谷歌搜索了很多,但無法找到一個很好的例子。有人能幫助我嗎。如何通過wcf中的存儲過程獲取數據?

在此先感謝

+1

你有什麼難處?編寫WCF方法或調用存儲過程? – 2010-01-27 12:45:49

+0

調用存儲過程,其在WCF服務返回多行導致我問題 – pankaj 2010-01-27 13:17:02

+0

我試圖以下 公開名單 GetTemplates() { RSPALinqDataContext rspaLinq =新RSPALinqDataContext(); return rspaLinq.TBL_CONTENTTEMPLATEs.ToList(); } 這裏TBL_CONTENTTEMPLATE是一個表,我得到它的所有記錄。我想做類似的事情,並從存儲過程或上表中的一些列(有或沒有LINQ)獲取所有數據。 謝謝 – pankaj 2010-01-27 13:29:29

回答

0

任何DB API都允許您訪問SQL。最近,我主要使用Entity Frameworks和我的WCF服務。一旦你將連接字符串解析成每個數據庫,一切都很好。

+0

感謝您的答覆,我沒有問題,在訪問sql服務器,但是當我嘗試從表中使用存儲過程獲取multible行我無法做到它。 – pankaj 2010-01-27 13:21:06

+0

我所做的是使用實體設計界面和服務器資源管理器拖動我感興趣的存儲特效,然後他們在datacontext.StoredProc(...)中。 – kenny 2010-01-27 15:00:32

0

ERM寫datacontract序列化類,並有它的方法使用連接對象來填充自己?

+0

我已經嘗試過,它的工作原理當我執行插入,更新或刪除數據庫的過程,但是當我嘗試獲取多列中的記錄時,我沒有得到它。我需要一個帶有記錄的數據表並將其返回給客戶端。我在web表單中做了很多次,但在wcf服務中沒有這麼做過。這將是非常好的,如果你可以提供一些示例代碼作爲即時通訊新的wcf – pankaj 2010-01-27 13:03:37

0

確保您的類型是可序列化的。根據你對PeanutPower的回答的評論,看起來你需要確保TBL_CONTENTTEMPLATE是可序列化的。同時驗證你的客戶端定義的服務契約是否接受System.Collections.Generic.List的集合類型,缺省值是System.Array,並且當客戶端契約在此配置錯誤時,我遇到了過去的問題辦法。