【问题标题】:Getting Data from SQL and putting in a list从 SQL 获取数据并放入列表
【发布时间】:2013-05-31 11:54:20
【问题描述】:

我正在从 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();
}

表格是这样的,

aID、bID、名称

**

  • 问题

**

我不知道如何将项目添加到列表中,这也是最佳做法吗?

【问题讨论】:

    标签: c# .net sql


    【解决方案1】:
    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);
    }
    

    【讨论】:

      【解决方案2】:
      var list = new List<Fruit>();
      
        while (reader.Read())
        {
               list.Add(new Fruit() { aID = reader["aID"].ToString(), bID = reader["bID"].ToString(), name = reader["name"].ToString() });
        }
      

      【讨论】:

        【解决方案3】:
        var Fruitee = new List<Fruit>();
        
        while (reader.Read())
        {
            Fruitee.Add(new Fruit() { aID = reader["aID"].ToString(), bID = reader["bID"].ToString(), name = reader["name"].ToString() });
        }
        

        【讨论】:

          【解决方案4】:

          您实际上需要阅读来自读者的内容,而这正是您没有做的事情。但是,请注意 DBNulls。

          因此,假设您的自定义列表具有 add 功能,您可以执行以下操作。

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

          【讨论】:

          • 不能使用 Fruitee.add 因为它不是一个列表。
          • 如果自定义列表具有添加功能,这就是我发表声明的原因。
          • 是的,但是fruitee变量是一个存储这些参数的类。即使它有添加功能,它会存储在哪里?它需要在该类中有一个列表来存储这些参数。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-17
          • 2016-08-04
          • 1970-01-01
          • 2016-03-12
          • 2014-10-09
          相关资源
          最近更新 更多