C# 使用progress OpenEdge 4GL中的.NET web服务(数据集)

C# 使用progress OpenEdge 4GL中的.NET web服务(数据集),c#,.net,web-services,progress-4gl,openedge,C#,.net,Web Services,Progress 4gl,Openedge,我在C#.net中创建了web服务,输入参数为:DataSet 另一方面,我需要使用ProgressOpenEdge 4GL10.1(而不是10.2)中的这个web服务 问题是OpenEdge中的数据集与.net中的数据集不匹配。 始终在结果中返回0 我是C#程序员,所以对Porgres没有深入的了解。我在论坛上做了研究,但不是一个好结果 有什么帮助吗? 提前谢谢 *代码****** //web服务:C#net //进展10.1 ---创建并填写临时表:字段1=30,仅1条记录 ---创建数据集

我在C#.net中创建了web服务,输入参数为:DataSet

另一方面,我需要使用ProgressOpenEdge 4GL10.1(而不是10.2)中的这个web服务

问题是OpenEdge中的数据集与.net中的数据集不匹配。 始终在结果中返回0

我是C#程序员,所以对Porgres没有深入的了解。我在论坛上做了研究,但不是一个好结果

有什么帮助吗? 提前谢谢

*代码******

//web服务:C#net

//进展10.1

---创建并填写临时表:字段1=30,仅1条记录

---创建数据集并绑定到临时表

---连接到web服务

---调用webmethod:

将变量结果定义为不撤消的整数

在hPortType中运行getResult(输入数据集,输出结果)

消息结果视图为警报框信息按钮确定。-->结果总是0

/***/

有人知道如何将openedge中的数据集“桥接”到.net数据集吗


注意:如果从.net调用此web服务,则该web服务运行良好。使用
数据集
或任何其他特定于.net的类型向web服务发送或从web服务接收数据是一种不好的做法。除了.NET之外,没有理由任何其他东西都能理解这种类型


顺便说一句,Java也是如此。AxisWeb服务的某些版本基本上假定它们被Java代码使用,并使用特定于Java的类型,而没有定义它们。没有很好地工作。

对于Web服务,应该使用XML。这是标准化的沟通方式


您能发布您迄今为止的尝试吗?也就是说,你的C代码。在不知道你做了什么的情况下,很难确定问题出在哪里。纠正约翰,但是:这是“高层”的要求-)我确实提到了这一点,但他仍然坚持:-(我知道在web服务中使用dataset并不常见,但因为他纯粹是在progress openedge中进行编程,progress openedge如此频繁地使用dataset和临时表,这就是为什么他已经习惯了。是的,但什么样的“dataset”这是一个.NET数据集还是一个Progress数据集?他的web服务肯定在使用XML谢谢你的回答。我最终与老板进行了“重新协商:-)1.Progress Openedge中的数据集转换为字符串XML(正在进行中,他们称之为longchar-->类似于长字符串)-->数据集:WRITE-XML(“longchar”,variableName,,,,,,,,?).2.web服务将接收字符串xml,并使用XmlDocument、XmlNodeReader和dataset.ReadXml()将其转换回.net数据集。感谢所有的思想专家!竖起大拇指
[webmethod]

public int getResult(DataSet ds)
{

  DataTable tbl = ds.Tables["datas"];

  int result=0;

  foreach (DataRow dr in tbl.Rows){ //only 1 record = 1 row

     result = Convert.toInt32(dr["field1"]); }

  return result;
}