C# 在C中手动为DataTable创建XML以发送到WebService#

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中的参

我已经被这个问题困扰了好几个小时了

我正在使用Web服务。此Web服务只有一种方法:

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将返回一个有效的结果。