【问题标题】:How to get all values from database for a particular column如何从数据库中获取特定列的所有值
【发布时间】:2015-03-08 03:47:57
【问题描述】:
我有一张公司表,我使用查询select * from company。但现在我只需要该表中的所有公司名称,如何获取并存储到字符串数组中。以下代码 sn-p 只有一个我原始的公司我得到的名字。但是如何获取所有公司名称并存储到数组中
reader = cmd.ExecuteReader();
// write each record
while(reader.Read())
{
Console.WriteLine("{0}",
reader["CompanyName"];
}
【问题讨论】:
标签:
c#
.net
sql-server
ado.net
【解决方案1】:
选项 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();
【解决方案2】:
不确定您是否需要专门将它放在一个数组中,或者只是一个集合......但您可以执行以下操作:
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.Generic 和 System.Linq