2013-01-20 131 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 –