WEB开发网
开发学院图形图像Flash 学Silverlight 2系列(17):数据与通信之ADO.NET... 阅读

学Silverlight 2系列(17):数据与通信之ADO.NET Data Services

 2008-10-03 11:35:40 来源:WEB开发网   
核心提示: 当然还可以进行其他的查询,使用filter和orderby等,学Silverlight 2系列(17):数据与通信之ADO.NET Data Services(4),如http://localhost:8081/BlogDataService.svc/Posts?$filter=Id e

学Silverlight 2系列(17):数据与通信之ADO.NET Data Services

当然还可以进行其他的查询,使用filter和orderby等,如http://localhost:8081/BlogDataService.svc/Posts?$filter=Id eq 1&$orderby=Id,这里不在介绍。至此我们的数据服务端就算完成了。下面再实现客户端,XAML不再贴出来,大家可以参考前面的几篇文章,使用WebClient获取数据,返回的结果是一个XML文件:

private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
  Uri uri = new Uri("http://localhost:8081/BlogDataService.svc/Posts");
  WebClient client = new WebClient();
  client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
  client.OpenReadAsync(uri);
}
void client_OpenReadCompleted(object sender,OpenReadCompletedEventArgs e)
{
  if (e.Error == null)
  {
    
  }
}

我们可以使用LINQ to XML进行数据的读取,在Silverlight项目中建立一个Post类,跟上面的Post类一样,然后使用LINQ to XML读取:

XmlReader reader = XmlReader.Create(e.Result);
XDocument postdoc = XDocument.Load(reader);
XNamespace xmlns = "http://www.w3.org/2005/Atom";
XNamespace ads = "http://schemas.microsoft.com/ado/2007/08/dataweb";
var posts = from x in postdoc.Descendants(xmlns + "entry")
      select new Post
      {
        Id = int.Parse(x.Descendants(ads + "Id").First().Value),
        Title = x.Descendants(ads + "Title").First().Value,
        Author = x.Descendants(ads + "Author").First().Value
      };
Posts.ItemsSource = posts;

完成的代码如下所示:

上一页  1 2 3 4 5  下一页

Tags:Silverlight 系列 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接