C# 在C中手动为DataTable创建XML以发送到WebService#
我已经被这个问题困扰了好几个小时了 我正在使用Web服务。此Web服务只有一种方法:C# 在C中手动为DataTable创建XML以发送到WebService#,c#,xml,web-services,datatable,C#,Xml,Web Services,Datatable,我已经被这个问题困扰了好几个小时了 我正在使用Web服务。此Web服务只有一种方法: Execute(string strMethod, string strParametersXML) 我已经在VisualStudio中为Web服务创建了一个服务引用。 此WebSerice可用于在服务器上调用方法。因此,对于每个方法,您都有不同的Methodname“strMethod”和不同的“strParametersXML” 其中一个方法要求将DataTable作为strParameterXML中的参
Execute(string strMethod, string strParametersXML)
我已经在VisualStudio中为Web服务创建了一个服务引用。
此WebSerice可用于在服务器上调用方法。因此,对于每个方法,您都有不同的Methodname“strMethod”和不同的“strParametersXML”
其中一个方法要求将DataTable作为strParameterXML中的参数。如果我在C#中创建一个datatable,并使用dataTableObject.writeXML()提取XML以strParameterXML的形式发送,那么Webservice只会返回无法解析的XML
如何创建一个dataTable以将其作为XML字符串发送到Web服务?我真的不明白您想要实现什么。但是,您可以尝试创建一个TypedDataSet,在VisualStudio中创建它,以便获得一个.xsd并公开和使用它 下面的代码将数据表转换为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);
}
这可能会帮助您将数据表转换为Xml,Xml可以在Web服务中重新构造
如果您可以获取该特定方法的WSDL,那将是最好的Web服务的WSDL只列出“Execute(strMethod,strParametersXML)”。那是我的问题。然后,这些方法在服务器端移交给一个函数,该函数检查是否存在具有给定strMethod名称的方法,然后尝试将给定strParametersXML字符串强制转换为对象。如果成功,将使用给定的参数调用服务器上的方法,然后将resilt作为XML字符串的应答发送回客户端。同样的结果。我从webservice得到的答案是xml无法解析。(异常详细信息-XML文档中的错误(1,1)。)。如果我使用不需要数据表(比如字符串、整数等)的方法调用Execute,webservice将返回一个有效的结果。