0

入力パラメーター: DataSet を使用して、C# .net で Web サービスを作成しました。

反対側では、進行中の OpenEdge 4GL 10.1 (10.2 ではない) からこの Web サービスを使用する必要があります。

問題は、OpenEdge の Dataset が .net の DataSet と一致しないことです。結果で常に 0 を返す

私は C# プログラマーなので、ポーグレスに関する深い知識はありません。進行中のフォーラムで調査を行いましたが、良い結果ではありませんでした。

何か助けはありますか?前もって感謝します。

*コード* * ***

//Web サービス : 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 レコードのみ

--- データセットを作成し、一時テーブルにバインドします

--- ウェブサービスに接続

--- webmethod を呼び出します:

変数結果を整数の元に戻さないものとして定義します。

getResult IN hPortType(INPUT データセット,OUTPUT 結果) を実行します。

メッセージ結果の表示 - アラート ボックスの情報ボタン [OK] として表示。---> 結果は常に 0

/ * ** * /

進行中のデータセットopengeを.netデータセットに「ブリッジ」する方法を知っている人はいますか?

注: この Web サービスは、.net から呼び出された場合にうまく機能します

4

2 に答える 2

0

または、.NET に固有の他の型を使用DataSetして、Web サービスとの間で送受信することはお勧めできません。.NET 以外がそのような型を理解する理由はありません。

ところで、同じことがJavaに関係しています。Axis Web サービスの特定のバージョンは、基本的に Java コードによって消費されると想定し、Java 固有のタイプを定義せずに使用していました。うまくいきませんでした。

于 2012-10-12T02:58:30.843 に答える