2013-05-31 89 views
8

Tôi nhận dữ liệu từ SQL và đưa nó vào danh sách. đây là những gì tôi đang cố gắng bây giờ,Lấy dữ liệu từ SQL và đưa vào danh sách

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 
} 

và đây là cách tôi đang nhận được dữ liệu từ 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(); 
} 

Bảng trông như thế này,

viện trợ, dự thầu, tên

**

  • Sự cố

**

Tôi bị mắc kẹt làm thế nào để thêm các mục vào danh sách và cũng là nó thực hành tốt nhất?

Trả lời

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

"add" không có sẵn thưa ông – Mathematics

+3

Tạo một danh sách các loại trái cây: –

-1

Bạn cần phải thực sự đọc từ người đọc và đó là những gì bạn không làm. Tuy nhiên, hãy chú ý đến DBNulls.

Giả sử danh sách tùy chỉnh của bạn có chức năng thêm bạn có thể làm một việc như sau.

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

Không thể sử dụng Fruitee.add vì nó không phải là một danh sách. –

+0

Đó là lý do tại sao tôi đã đưa ra tuyên bố nếu danh sách tùy chỉnh có chức năng bổ sung. – dklingman

+0

Có nhưng biến fruitee là một lớp lưu trữ các tham số này. Ngay cả khi nó có chức năng bổ sung, nó sẽ lưu trữ ở đâu? Nó cần phải có một danh sách bên trong lớp đó để lưu trữ các tham số đó. –

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() }); 
} 
Các vấn đề liên quan