Newb需要学习如何查询.asmx Web服务

时间:2009-07-10 12:31:34

标签: .net web-services sharepoint

我已经抛出了一个项目,我不得不说我没有最开心的想法从哪里开始,所以我希望有人能在这里给我一些指示!

我正在使用SharePoint Intranet,我需要查询已设置的Web服务。用那个设置它的人的话来说:

  
      
  1. 该查询的结果将是DataSet(.Net framework)
  2.   
  3. 数据集将包含1个DataTable
  4.   
  5. 数据表将包含3列:名称,部门和链接
  6.   
  7. 名称和部门将显示在GridView中,链接字段显示为名称字段的基础PostbackUrl属性。
  8.   
  9. 在网格上方标题
  10.   
  11. 将EmptyDataText属性设置为:“No Records”
  12.   

现在我已经使用过SQL和PHP,AJAX等等,但我不必使用.net或其他任何东西,所以我真的不确定你是怎么回事

a)去查询这个数据集 b)以何种格式发回数据

如果我可以解决这两个问题,我很高兴我可以格式化结果并让它看起来很漂亮。我最好的猜测是,它会发回一个XML提要,其中包含他作为XML中元素的列?

干杯!

3 个答案:

答案 0 :(得分:1)

如果您使用的是Visual Studio,则应该能够创建一个可用于测试连接到Web服务的快速小型Web应用程序。如果Web服务具有已发布的位置,则只需向项目添加新的Web引用,并将URL添加到要连接的ASMX的URL中。

要做到这一点:

  1. 右键单击您的Web项目
  2. 选择“添加网络参考”
  3. 输入要连接的Web服务的URL,然后找到所需的Web服务定义。
  4. 为参考命名
  5. 按“添加参考”按钮。
  6. 现在,您可以使用在步骤4中提供的名称在代码中引用此Web引用。

    MyWebServiceName ws = new MyWebServiceName();
    ws.WebServiceMethodName(query);
    

    这至少可以帮助您开始从Web服务获取信息。

答案 1 :(得分:0)

您不会以查询数据库的方式查询数据集,因为它们是具有对象集合的对象。

相反,您将遍历对象集合,提取您想要的内容,然后将此输出转换为适当的数据类型。 'for each'循环是一种选择。

'ado.net datatable'的第一个google链接.... http://msdn.microsoft.com/en-us/magazine/cc163709.aspx

有一半你需要的东西。显然你不关心ado.net连接部分。

这段代码片段可能更有用 - 更短,并清楚地显示迭代。

http://www.eggheadcafe.com/articles/20030903.asp

Alternativley,

根据你列出的语言,你可能想要一个更通用的数据格式......比如你建议的XML ....这将是一种更加语言独立的格式。

很容易发布一个新的Web服务方法,它将以字符串格式返回与xml文档相同的数据集...只需使用数据集的to xml方法,将其传递到Xdocument和.toString()它...

答案 2 :(得分:0)

有关帮助您测试Web服务并查看返回内容的调试工具,请查看STORM。如果您使用的是WCF服务,还有一个WCF版本。

我发现这个工具非常适合查看Web服务正在做什么。我遇到的唯一问题是它可能有点挑剔 - 您的网络服务必须符合标准,否则它将是barf。