【问题标题】:how to get dataset in delphi that generate in asp.net webservice如何在delphi中获取在asp.net webservice中生成的数据集
【发布时间】:2013-05-16 06:50:42
【问题描述】:

我在 asp.net 中写了一个webservice,它具有选择函数,它的参数是一个字符串,返回一个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 中的数据源? 有什么想法吗?

【问题讨论】:

    标签: c# asp.net web-services delphi delphi-7


    【解决方案1】:

    DataSet 不好作为不使用 .net 的客户端的 web 服务返回类型。您可以尝试在此处重新调整 XML..

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

    这将为您提供如下所示的 XML

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

    希望您可以处理它以用作数据源。

    如果您需要缩进 XML,请查看此答案 What is the simplest way to get indented XML with line breaks from XmlDocument?

    【讨论】:

      猜你喜欢
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多