0

私はphp.Iにある1つのチュートリアルを参照しています.C#に変換しています.問題は、彼らが使用したことです

これで私のクエリ

SELECT ST_AsText(
  ST_Union(
    ST_Difference(
      ST_Buffer(ST_GeometryFromText('POINT(0 0)', 4326), 30),
      ST_Envelope(
        ST_Buffer(ST_GeometryFromText('POINT(0 0)', 4326), 10)
      )
    ),
    ST_Envelope(
        ST_Buffer(ST_GeometryFromText('POINT(-55 -55)', 4326), 10)
      )
  )
);

postgresqlで実行した後の結果は

"MULTIPOLYGON(((30 0,29.4235584120969 -5.85270966048384,27.7163859753386 -11.4805029709527,24.9440883690764 -16.6671069905881,21.2132034355964 -21.2132034355964,16.6671069905881 -24.9440883690763,11.4805029709527 -27.7163859753386,5.85270966048389 -29.4235584120969,4.84662765649901e-014 -30,-5.85270966048379 -29.4235584120969,-11.4805029709526 -27.7163859753386,-16.667106990588 -24.9440883690764,-21.2132034355964 -21.2132034355965,-24.9440883690763 -16.6671069905881,-27.7163859753386 -11.4805029709528,-29.4235584120969 -5.85270966048394,-30 -9.69325531299803e-014,-29.4235584120969 5.85270966048375,-27.7163859753386 11.4805029709526,-24.9440883690764 16.667106990588,-21.2132034355965 21.2132034355963,-16.6671069905882 24.9440883690763,-11.4805029709528 27.7163859753386,-5.85270966048396 29.4235584120969,-1.12092138956216e-013 30,5.85270966048374 29.4235584120969,11.4805029709526 27.7163859753386,16.667106990588 24.9440883690764,21.2132034355964 21.2132034355965,24.9440883690763 16.6671069905881,27.7163859753386 11.4805029709528,29.4235584120969 5.85270966048391,30 0),(-10 -10,10 -10,10 10,-10 10,-10 -10)),((-65 -65,-65 -45,-45 -45,-45 -65,-65 -65)))";

この後、私のphpはこれを配列に変換します(これは、指定されたシステムデータテーブルを配列に変換します)

$arr = pg_fetch_array($res);

今、私はphpが行う同様の機能を書きたいですか? しかし、正しく変換できません

私の関数は次のようになります

public Array FetchArray(DataTable Dt)
    {
        int[] array;
        Array arr = new Array[];
        Array converted = new Array(Dt.Rows.Count);
        foreach (DataRow row in Dt.Rows)
        {
            arr.Add(row);//here it should convert the system DataTable into sytem array
        }
        return arr;

    }

誰か助けてください。前もって感謝します。

4

1 に答える 1

1

このSystem.Data.DataRowクラスには、行の値を (タイプの)ItemArray配列で返すプロパティがあります。object

したがって、おそらく次の例は、目的の場所に到達するのに役立ちます。

foreach (DataRow row in Dt.Rows)
{
    object[] values = row.ItemArray;
}
于 2012-02-27T04:59:53.667 に答える