通过Web服务返回数据c#

时间:2008-10-15 20:15:34

标签: c# web-services

我知道这是一个古老的问题,但这是我的情景

这是在C#2.0

拥有一个具有datagridview控件的Windows应用程序。这需要通过进行Web服务调用来填充。

如果我使用直接连接并且使用数据集,我想在数据上实现相同的功能,例如分页和对返回的数据应用过滤器。我知道返回数据集是一个坏主意,我希望找到一个好的解决方案。

4 个答案:

答案 0 :(得分:1)

我可能会在VS2008 SP1中查看ADO.NET Data Services,即Astoria。

这允许您通过Web服务公开数据(WCF暴露ATOM,IIRC) - 但您不需要知道所有这些细节:工具为您担心:您只需获得常规IQueryable< T>数据上下文的来源(与LINQ-to-SQL数据上下文不同,但概念相同)。

这里的好处是LINQ查询(例如过滤(Where),分页(Skip / Take)等)可以从客户端所有组成到< / em> Web服务,以及支持LINQ的数据存储(LINQ-to-SQL或Entity Framework等)。所以只有正确的数据来自网络:如果你要求按名称排序的前10行(20000),那就是你得到的:数据库中有10行;电线上有10排,没有杂乱。

答案 1 :(得分:1)

编写一个保存数据的自定义类(MyDataItem)。然后,您可以传递List<MyDataItem>或MyDataItem的一些集合并绑定到您的网格。

您需要实施分页,过滤等。

答案 2 :(得分:1)

如果您正在浏览Web服务数据层,则无法获得使用DataSet自动获取的绑定行为。您必须创建自己的代理类,该类支持所有数据绑定功能,并通过Web服务调用保留它们。根据应用程序的环境,您可能希望批量修改以避免过多的Web服务往返。

答案 3 :(得分:0)

fallen888没错 - 你需要创建一个List或DataTable的集合类,用webservice数据流的输出填充它,并自己处理分页和过滤。