2013-05-31 29 views
8

我從SQL獲取數據並將其放入列表中。這就是我現在想,從SQL獲取數據並放入列表

public class Fruit //custom list 
{ 
    public string aID { get;set; } // can be more then 1 
    public string bID { get;set; } // only 2 but different aID 
    public string name { get;set; } // only 1 for selection of aID and bID 
} 

,這就是我如何獲得從SQL數據,

var Fruitee = new Fruit(); 

using (SqlConnection cn = new SqlConnection(CS())) 
{ 
     cn.Open(); 
     SqlCommand sqlCommand= new SqlCommand("SELECT * FROM myTable", cn); 
     SqlDataReader reader = sqlCommand.ExecuteReader(); 
     while (reader.Read()) 
     { 
      Fruitee.add(reader["aID"], reader["bID"],reader["name"]) // ??? not sure what to put here as add is not available 
     } 
     cn.Close(); 
} 

表看起來是這樣的,

援助,競價名

**

  • 問題

**

我堅持如何項添加到列表和也是它的最佳實踐?

回答

15
List<Fruit> fruits = new List<Fruit>(); 

while (reader.Read()) 
{ 
    Fruit f = new Fruit(); 
    f.aID = (string) reader["aID"]; 
    f.bID = (string) reader["bID"]; 
    f.name = (string) reader["name"]; 
    fruits.Add(f); 
} 
+0

「增加」不可用先生 – Mathematics

+3

創建水果的清單: –

-1

你需要真正讀取來自讀者,這就是你沒有做什麼。但是,請注意DBNulls。

因此,假設您的自定義列表有添加函數,您可以執行以下操作。

while(reader.Read()) 
{ 
    Fruitee.add(reader["aID"], reader["bID"], reader["name"]); 
} 
+0

不能使用Fruitee.add因爲它不是一個列表。 –

+0

這就是爲什麼如果自定義列表具有添加功能,我發表了聲明。 – dklingman

+0

是的,但fruitee變量是存儲這些參數的類。即使它具有添加功能,它將在哪裏存儲它?它需要在該類中有一個列表來存儲這些參數。 –

3
var list = new List<Fruit>(); 

    while (reader.Read()) 
    { 
     list.Add(new Fruit() { aID = reader["aID"].ToString(), bID = reader["bID"].ToString(), name = reader["name"].ToString() }); 
    } 
1
var Fruitee = new List<Fruit>(); 

while (reader.Read()) 
{ 
    Fruitee.Add(new Fruit() { aID = reader["aID"].ToString(), bID = reader["bID"].ToString(), name = reader["name"].ToString() }); 
} 
相關問題