我使用输入参数: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服务,效果很好答案 0 :(得分:0)
使用DataSet
或.NET特定的任何其他类型来发送或接收Web服务是一种不好的做法。没有理由除.NET以外的任何东西都能理解这些类型。
同样,BTW与Java有关。某些版本的Axis Web服务基本上假设它们被Java代码使用,并且使用特定于Java的类型而不定义它们。做得不好。
答案 1 :(得分:0)
对于webservices,您应该使用XML吗?这是标准化的沟通方式。