如何在Delphi中获取在asp.net webservice中生成的数据集

本文关键字:数据集 webservice asp Delphi 获取 net | 更新日期: 2023-09-27 18:13:43

我写了一个webservice在asp.net中有选择函数,它的参数是一个字符串,返回一个dataset这样:

[WebMethod]
public DataSet Select(string query)
{
    DataTable dt = new DataTable();
    dt.Columns.Add("fname");
    dt.Columns.Add("lname");
    dt.Rows.Add("mehdi", "nine");
    dt.Rows.Add("ali", "javan");
    DataSet ds = new DataSet();
    ds.Tables.Add(dt);
    return ds;
}

当我看到它是XML输入时它是这样的:

<s:element name="Select">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="query" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="SelectResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="SelectResult">
<s:complexType>
<s:sequence>
<s:element ref="s:schema"/>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>

在xml文件中,我们可以看到它的输出是SelectResult。我如何将其转换为delphi7中的数据源?任何想法?

如何在Delphi中获取在asp.net webservice中生成的数据集

数据集不是很好,作为不使用。net的客户端的webservice返回类型。您可以尝试在这里返回XML .

[WebMethod]
public string Select(string query)
{
    // your code
    return ds.GetXml();
}

这将给你下面的XMl Like

<NewDataSet>
  <Table1>
    <fname>mehdi</fname>
    <lname>nine</lname>
  </Table1>
  <Table1>
    <fname>ali</fname>
    <lname>javan</lname>
  </Table1>
</NewDataSet>

希望你能处理这个作为数据源使用。

如果你需要缩进的XML检查这个答案是什么是最简单的方法,从XmlDocument获得缩进的XML与换行符?