使用.NET Web服务(Dataset)从进步OpenEdge 4GL

时间:2012-10-12 02:03:38

标签: c# .net web-services progress-4gl openedge

我使用输入参数:DataSet

在C#.net中创建了Web服务

另一方面,我需要使用OpenEdge 4GL 10.1(而不是10.2)进步的这个Web服务

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

我是C#程序员,因此对porgress没有深入了解。我在进展论坛做过研究,但结果不是很好。

任何帮助? 提前谢谢。

*码* * ***

//网络服务:C#.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;
}

//进步OpenEdge 10.1

---创建并填充temp-table:field1 = 30且只有1条记录

---创建数据集并绑定到temp-table

---连接到网络服务

---调用webmethod:

将变量结果定义为整数no-undo。

在hPortType中运行getResult(INPUT数据集,OUTPUT结果)。

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

/ * ** * /

任何人都知道如何“桥接”正在进行的数据集打开到.net数据集?

注意:如果从.net

调用此Web服务,效果很好

2 个答案:

答案 0 :(得分:0)

使用DataSet或.NET特定的任何其他类型来发送或接收Web服务是一种不好的做法。没有理由除.NET以外的任何东西都能理解这些类型。

同样,BTW与Java有关。某些版本的Axis Web服务基本上假设它们被Java代码使用,并且使用特定于Java的类型而不定义它们。做得不好。

答案 1 :(得分:0)

对于webservices,您应该使用XML吗?这是标准化的沟通方式。

http://en.wikipedia.org/wiki/Web_service