2012-04-17 44 views
0

返回多行我使用下面的方法在Web服務返回一組數據 -從數據庫

int T = 0; 
res.rows = new users[1]; 
     int cnt = 0; 

     while (reader.Read()) 
     { 

      if (T == 0) 
      { 

       res.rows[T] = new users(); 

       res.rows[T].age = (String)reader["age"]; 
       res.rows[T].height = (String)reader["height"]; 

       T = T + 1; 

      } 
      cnt = cnt + 1;    
     } 

     return res; 

我當前已設計了這個返回一行數據,這裏設置res.rows = new users[1];然後j==0然後帶回第一行數據。

我的問題是我怎麼能修改這個帶回多個/所有的數據行? 在此先感謝。

+0

什麼類型的對象都是資源和用戶? – 2012-04-17 13:21:38

+0

他們都是結構。 – Ebikeneser 2012-04-17 13:24:29

+0

你爲什麼不創建一個User類並設置Age和Height屬性,然後通過你的閱讀器填充它們並從你的方法返回一個用戶列表? – 2012-04-17 13:27:01

回答

0

試圖保持在你的代碼會是這樣的改變最小,

int T = 0; 
res.rows = new List<User>(); 
    int cnt = 0; 

    while (reader.Read()) 
    { 

     //if (T == 0) 
     { 
      User u =new users(); 
      res.rows.Add(u); 

      res.rows[T].age = (String)reader["age"]; 
      res.rows[T].height = (String)reader["height"]; 

      T = T + 1; 

     } 
     cnt = cnt + 1;    
    } 

    return res; 
+0

作品一個善良的好人 – Ebikeneser 2012-04-20 12:17:25

1
public class User 
{ 
    private string m_Age; 
    private string m_Height; 

    public User() { } 

    public string Age 
    { 
     get { return m_Age; } 
     set { m_Age = value; } 
    } 

    public string Height 
    { 
     get { return m_Height; } 
     set { m_Height = value; } 
    } 

} 

var rows = new List<User>(); 
while (reader.Read()) 
{ 

    var row = new User(); 
    row.Age = reader["age"]; 
    row.Height = reader["height"]; 
    rows.Add(row); 
} 

res.rows = rows; //if the res.rows property is an array then you can change this line to res.rows = rows.ToArray(); 

return res; 
+0

感謝您的輸入+1 – Ebikeneser 2012-04-20 12:19:32