2013-01-20 135 views
0

只是一個簡單的問題,因爲我努力讓Web服務工作。 基本上我也跟着,因爲我是新來的Windows Phone和數據庫的教程,WCF Web服務和Windows Phone

"http://studentguru.gr/b/dt008/archive/2010/12/02/querying-a-database-on-windows-phone-7-using-wcf.aspx" 

但是我用我自己的數據庫,在Visual Studio中創建一個.sdf文件

我設法創建服務,參考資料以及它所說的所有方法。 然而,當我嘗試在運行時抓住從服務的數據,它只是返回

 Timesheet_System.Servicereference.TimeData 
     Timesheet_System.Servicereference.TimeData 
     Timesheet_System.Servicereference.TimeData 
     Timesheet_System.Servicereference.TimeData 

對於在數據庫中的項目的所有4。

有沒有人知道一個原因爲什麼? 非常感謝。 下面的代碼:

我有一個asp.net網站數據服務,以及ado.net數據模型,然後 我在手機應用程序和服務的參考2種方法來調用數據 這是該數據在asp.net應用程序

namespace TimesheetDataSite 
{ 
    [ServiceContract(Namespace = "")] 
    [SilverlightFaultBehavior] 
    [AspNetCompatibilityRequirements(RequirementsMode =  AspNetCompatibilityRequirementsMode.Allowed)] 
public class Service1 
{ 
    [OperationContract] 
    public List<TimeData> DoWork() 
    { 
     // Add your operation implementation here 
     using (TimeDataEntities2 entities = new TimeDataEntities2()) 
     { 
      var alldata = from x in entities.TimeDatas select x; 
      return alldata.ToList(); 
     } 
    } 

    // Add more operations here and mark them with [OperationContract] 
} 

}服務代碼

2種方法中的電話應用

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
     { 
     Service1Client client = new Service1Client(); 

     client.DoWorkCompleted += 
      new EventHandler<DoWorkCompletedEventArgs>(client_DoWorkCompleted); 
     client.DoWorkAsync(); 
    } 
    void client_DoWorkCompleted(object sender, DoWorkCompletedEventArgs e) 
    { 
     if (e.Error == null) 
     { 

      listBox1.ItemsSource = e.Result; 
     } 
    } 

} 
+0

發佈您的代碼,我們可以提供幫助。 –

+0

完成,如果它幫助我試圖做的是有一個頁面,從數據庫中獲取信息。另一頁記錄時間,並將其發送到數據庫。 –

+0

問題是你的'ListBox'不知道如何處理'TimeData'類型,所以它只是在每個實例上調用'.ToString()'。不幸的是,我目前沒有在這臺機器上安裝Visual Studio,但是我建議嘗試添加'listBox.DisplayMember ='這個行。'<你想在該框中顯示的屬性>「。 –

回答

1

TimeData按我的意見,請嘗試以下操作:

void client_DoWorkCompleted(object sender, DoWorkCompletedEventArgs e) 
{ 
    if (e.Error == null) 
    { 
     listBox1.DisplayMemberPath = "PropertyA"; 
     listBox1.ItemsSource = e.Result; 
    } 
} 

PropertyA是要顯示TimeData屬性的名稱。

就像我說的,我沒有Visual Studio可以測試這個,但它應該工作。

+0

我一直在收到「不包含valuemember和displaymember的定義,這很奇怪,對不起,因爲這樣的痛苦,我很新的windows phone –

+0

哇!我仍然得到我說的,但我用listBox1.DisplayMemberPath =」用戶名「 ;這工作,所以如果我想獲得用戶名,工作時間,日期和ID,我會只是複製相同的聲明? –

+0

我認爲顯示更復雜的值(即像你說的屬性組合),你會需要查看'DataTemplate's –