2012-02-27 34 views
0

我指的是一個教程,是php.I是在轉換成C#.The事情是,他們已經在這個皈依數據表/數據集的給定陣列

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; 

    } 

有人請幫助我。 在此先感謝。

+0

您正在使用什麼版本的.NET Framework? – tstuts 2012-02-27 04:30:17

+0

@tstuts我正在使用Microsoft Visual Studio 2010 .net版本3.5 – user1118700 2012-02-27 04:36:34

回答

1

System.Data.DataRow類有一個ItemArray屬性,在

所以,也許下面的例子將有助於你得到(object型)數組返回該行的值,其中你試圖去:

foreach (DataRow row in Dt.Rows) 
{ 
    object[] values = row.ItemArray; 
} 
+0

您的意思是說。現在我的功能如下所示 公共對象FetchArray(DataTable Dt) object [] rowarray = new object [2]; // Array arr = new Array [Dt.Rows.Count]; foreach(DataRow在Dt.Rows中的行) object [] values = row.ItemArray; } return rowarray; } – user1118700 2012-02-27 05:21:59

+0

糾正我自己。 現在我的函數應該是這樣的 [code] public DataTable FetchArray(DataTable Dt) object [] rowarray = new object [2]; DataRow關係; // Array arr = new Array [Dt.Rows.Count]; foreach(DataRow在Dt.Rows中的行) object [] values = row.ItemArray; relation = Dt.NewRow(); relation.ItemArray = values; Dt.Rows.Add(relation); } return Dt; } [code] – user1118700 2012-02-27 05:28:58

+0

從你的代碼示例中很難理解你試圖從這個方法返回的結果。您引用的'pg_fetch_array' PHP函數只是將該行中的值作爲數組返回,其中'row.ItemArray'與C#中的類似。你還想做什麼? – tstuts 2012-02-27 05:49:30