如何从特定列的数据库中获取所有值

时间:2015-03-08 03:47:57

标签: c# .net sql-server ado.net

我有一个公司表,我使用了查询select * from company。但现在我只要求此表中的所有公司名称,如何记录并存储到字符串数组。以下代码片段只有一个我原来的公司我得到的名字。但如何获取所有公司名称并存储到数组

reader = cmd.ExecuteReader();

            // write each record
            while(reader.Read())
            {
                Console.WriteLine("{0}", 
                    reader["CompanyName"]; 

            }

2 个答案:

答案 0 :(得分:2)

选项1:使用ArrayList

  

ArrayList动态调整大小。随着元素的添加,空间就是   需要,它的容量增长。它最常用于较旧的C#   程式。

ArrayList companylist = new ArrayList();

reader = cmd.ExecuteReader();

// write each record
while(reader.Read())
 {
    companylist.Add(reader["CompanyName"]);
 }

foreach (var name in companylist)
{ 
   Console.WriteLine(name);
}

选项2:使用列表

  

Replacement for deprecated ArrayList.

List<string> companylist = new List<string>();

reader = cmd.ExecuteReader();

// write each record
while(reader.Read())
 {
    companylist.Add(reader["CompanyName"]);
 }

foreach (var name in companylist)
{ 
   Console.WriteLine(name);
}

//Converting list to string Array
var CompanyNamesArray = companylist.ToArray();

答案 1 :(得分:1)

不确定您是否需要特定数组,或仅仅是一个集合...但您可以执行以下操作:

reader = cmd.ExecuteReader();

List<string> listOfCompanyNames = new List<string>();

        // write each record
        while(reader.Read())
        {
            Console.WriteLine("{0}", 
                reader["CompanyName"]; 
            listOfCompanyNames.Add(reader["CompanyName"]);
        }

        var arrayOfCompanyNames = listOfCompanyNames.ToArray();

请注意,您需要导入System.Collections.GenericSystem.Linq