2013-10-31 53 views
0

我完全堅持這個小時了。手動創建DataTable的XML以發送到C#中的WebService

我正在使用web服務。此Webservice只有一種方法:

Execute(string strMethod, string strParametersXML) 

我在Visual Studio中爲WebService創建了服務引用。 這個WebSerice可以用來在服務器上調用方法。因此,對於每種方法,您有不同的Methodname「strMethod」和不同的「strParametersXML」。

其中一種方法要求將數據表作爲strParameterXML中的參數。如果我在C#中創建一個數據表並用dataTableObject.writeXML(<>)將XML作爲strParameterXML發送,則Web服務僅返回該XML無法分析。

如何創建一個dataTable將其作爲XML-String發送到WebService?

回答

1

下面的代碼將數據錶轉換成XML字符串

public string ConvertDataTableToXml(DataTable table) 
{ 
    MemoryStream stream = new MemoryStream(); 
    table.WriteXml(stream, true); 
    str.Seek(0, SeekOrigin.Begin); 
    StreamReader reader = new StreamReader(stream); 
    string xmlstr; 
    xmlstr = reader.ReadToEnd(); 
    return (xmlstr); 
} 

可能,這將幫助你在數據錶轉換爲可重新創建於web服務的XML。

這將是最好的,如果你可以得到WSDL的特定方法

+0

Web服務的WSDL僅列出「Execute(strMethod,strParametersXML)」。這是我的問題。然後將方法在服務器端移交給一個函數,該函數檢查是否存在具有給定strMethod名稱的方法,然後嘗試將給定的strParametersXML字符串轉換爲對象。如果成功,則服務器上的方法將使用給定的參數調用,然後將resilt作爲XML-String的回答發送回客戶端。 – MadMaxAPP

0

我真的不明白你要完成什麼。但是,你可以嘗試創建一個TypedDataSet,在Visual Studio中創建它,以便獲得.xsd並公開並使用它?

+0

我試過了。同樣的結果。我從webservice回來的是無法解析xml的答案。 (異常詳細信息 - XML文檔(1,1)中的>錯誤。)。如果我用一個不需要dataTable的方法調用Execute(比方說string,Integer等),那麼webservice會返回一個有效的結果。 – MadMaxAPP

相關問題