2011-07-12 23 views
1

我的Silverlight 4應用程序有一個DataGrid控件,它需要顯示來自SQL Server查詢命令(例如SELECT * FROM TABLE ...)的數據行。有沒有解決方法?我需要使用WCF還是ADO?Silverlight 4調用SQL服務器查詢命令

非常感謝您的幫助。

回答

1

根據您對「需要使用SQL Server查詢命令顯示數據行的DataGrid控件」的描述,您希望使用RIA服務。

  • 創建RIA服務的Silverlight項目(或現有的項目使RIA服務)
  • 創建一個實體框架模型引用您的SQL Server表
  • 創建一個使用您的EF模型域服務
  • 構建項目後,您將能夠在「數據源」窗口中看到您的表格
  • 從數據源窗口中,您可以直接將表示該表格的網格拖到頁面上。這將創建一個DomainDataSource以及DataGrid並將它們連接起來。
  • 您需要添加的唯一一點是分頁。

下面是有關此過程的一些信息:http://msdn.microsoft.com/en-us/library/ee707376(v=vs.91).aspx

我知道這聽起來像一個地段或工作,但一旦你習慣的步驟也都相當簡單(使拖拉,droppy東西工作得很好)。

+0

感謝您的幫助,它適用於EF模型和'WCF數據服務'。但我需要在編譯時分配表和字段名稱。有沒有辦法在運行時將表/字段名稱分配給LINQ查詢? –

+0

@CHI KUO TANG:你不必在服務器端使用Linq和EF。連接域服務後,您可以用自己的代碼(包括從字符串構建的RAW SQL調用)替換RIA服務的服務器端。 –

+0

非常感謝。現在我使用EDM和域服務(WCF RIA服務)來獲取一些數據。但是我只使用基本的上下文 - > GetComstersQuery()來調用表來獲取整個數據。您是否會告訴您如何在您的上一個回覆中提到的在EDM /域服務器上使用來自字符串的RAW SQL調用?非常感謝。 –

1

Silverlight目前無法直接訪問像Sql Server或Oracle這樣的數據庫。

要訪問數據,您必須使用某種形式的服務作爲數據的網關。

Pure WCF是一個選項。

你還應該看看WCF RIA服務。

這是一個很好的鏈接,看看還有什麼可用的。 http://wildermuth.com/2010/07/08/State_of_Data_Access_in_Silverlight_4

你也可以看看項目Agatha-rrsl。 http://code.google.com/p/agatha-rrsl/

以上都是免費的。

也有非免費的選擇。

+0

感謝您的回答。我使用'Web服務'來獲取sql查詢數據,但在Silverlight方面它只允許'數組','列表'或'字典'。我需要將'DbDataRecord列表'傳回給Silverlight,但似乎Silverlight不允許'DbDataRecord'命名空間'system.data.common'被使用。所以我只能傳回鋸齒狀的數組。有沒有辦法將DbDataRecord的列表傳遞迴Silverlight應用程序?再次感謝。 –

+0

我認爲你不能這樣做。我從來沒有試過,我不認爲這是個好主意。 Silverlight中不存在此類。你可以嘗試使用Json.Net來序列化數據併發送。請記住,任何發往Silverlight的數據都必須以某種形式可序列化。 – Klinger