2012-04-18 42 views
0

首先,我在這個項目的深層次上拋棄了某種東西。我以前從未使用過Silverlight。我一直負責創建理論上應該是一個非常簡單的項目,但我有點難住。從Silverlight/C#程序查詢數據庫

該項目非常簡單地從SQL Server 2008數據庫中提取。這個數據庫裏面有3個表格和1個視圖。這些表格基本上包含了很多關於我公司內現有項目的數據。 (時間表信息,預計完成日期,項目所有小時/美元等)。

我在VS 2010中使用了Silverlight業務應用程序模板。我已經成功通過服務器瀏覽器添加了一個到數據庫的連接,並且還添加了ADO.NET數據實體框架和域服務類。這使得加載的初始頁面變得非常簡單。我能夠將所需的視圖拖動到頁面上,並顯示數據網格中的所有數據。在這個數據網格的內部,我添加了一個按鈕列,以使用戶能夠查看有關特定項目的更多詳細信息。

<sdk:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <Button Content="View Details" Click="Button_Click"></Button> 
     </DataTemplate> 
    </sdk:DataGridTemplateColumn.CellTemplate> 

然後在Button_Click方法裏面,我有:

string temp1 = summary1DataGrid.SelectedItem.ToString(); 
    string[] temp2 = new string[10]; 
    temp2 = temp1.Split(','); 
    temp1 = temp2[3].Remove(temp2[3].IndexOf('}')); 
    NavigationService.Navigate(new Uri(String.Format("Details/{0}", temp1), uriKind.Relative)); 

這將提取我是從現有的數據網格需要的ID號,並通過它的下一個頁面,在那裏我可以提取身份證號碼與此:

string wbsid = NavigationContext.QueryString["id"]; 

這是我的問題實際上開始。基本上我需要做的是查詢我已經添加到這個項目中的數據庫。我想顯示一個只包含具有該特定ID的數據的數據網格。我知道如何執行SQL查詢,但不知道如何將所有這些內容合併到Silverlight/C#項目中。用最後的代碼段我能夠得到我需要的id。現在我已經擁有它了,如何使用它查詢數據庫?

我一直在研究所有的網絡,我很難找到一些東西,至少可以指向正確的方向。如果任何人都可以給我一點點幫助,我將不勝感激。對於冗長的解釋,我很抱歉,我只是想給你們提供所有可能有幫助的細節。提前致謝。祝你有美好的一天。噢,如果您需要其他信息,我會經常檢查,並會盡快給您回覆。

回答

1

我認爲你的任務將使用WCF Data ServicesWCF RIA Services更容易。這兩種技術都適用於Silverlight,並允許您與數據庫進行交互。請記住(您可能已經知道)您將從Silverlight執行的所有交互都將是異步的,並且Silverlight應用程序遠離向其提供服務的Web服務器,因此獲取數據將涉及網絡通信量/請求。

希望這給你一個開始。

+0

好的,所以我在我的項目中添加了啓用Silverlight的WCF服務文件。這些方法與其他常規方法一樣嗎?即我調用一個SqlConnection,添加連接字符串,然後像在普通的c#應用程序中那樣提取數據? – jwebster 2012-04-18 19:36:56