2013-05-16 20 views
0

我寫在asp.net一個webservice具有選擇功能,它的參數是一個字符串,返回一個dataset這樣的:如何讓德爾福數據集,在asp.net web服務產生

[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的數據源? 有什麼想法?

回答

0

DaTaSet不好當Web服務返回類型爲不使用.net的客戶端。您可以嘗試在這裏retun XML ..

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

這會給你下面

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

希望你能處理這個作爲數據源使用XML一樣。

如果您需要縮進的XML檢查這個答案What is the simplest way to get indented XML with line breaks from XmlDocument?

+0

感謝您reply.i這樣做,但它返回WideString的。 –

+0

這比selectresult更好,我會對此做出努力。 –