C#中单个列的SQL查询到数组或集合?

C#中单个列的SQL查询到数组或集合?,c#,sql,sql-server-ce,compact-framework,C#,Sql,Sql Server Ce,Compact Framework,如何将SQL查询的结果移动到C#中的数组或集合中 我的SQL查询(从mytable的LastName列中选择具有非空值的LastName值): 下面是我之前执行的代码,用于生成具有该列的新数据集: string connectionString = @"Data Source='/path-to-datatable/ASTS.sdf';"; string strSql = "SELECT LastName FROM mytable WHERE LastName IS NOT NULL"; Sql

如何将SQL查询的结果移动到C#中的数组或集合中

我的SQL查询(从mytable的LastName列中选择具有非空值的LastName值):

下面是我之前执行的代码,用于生成具有该列的新数据集:

string connectionString = @"Data Source='/path-to-datatable/ASTS.sdf';";
string strSql = "SELECT LastName FROM mytable WHERE LastName IS NOT NULL";
SqlCeConnection mConnection = new SqlCeConnection(connectionString);
SqlCeCommand mCommand = new SqlCeCommand(strSql, mConnection);
PartNumberDataSet = new MyDataBase();
// Read all rows from the table into a dataset
SqlCeDataAdapter PNadapter = new SqlCeDataAdapter(mCommand);
PNadapter.Fill(PartNumberDataSet, "mytable ");

但是,我希望尽量减少必须存储在内存中的数据量(该表中有大约20列)。如何将此查询保存到某个数组或集合中?我只需要LastName值。

一个数据集和数据适配器可能是,也可能不是过度使用。您真的需要问问自己是否需要数据集(即,您是否将其传递给设计用于处理数据集的API)。如果你真的需要它,那么可能很少有动力尝试去做任何事情(除非你分析并确定它太重)

但是,如果不需要数据集,只需要从数据库中获取姓氏列表或其他数据,则可以使用从数据库中读取结果集并填充集合

使用while循环读取每条记录,并从数据读取器中提取姓氏。对于每个姓氏,将其添加到集合中

应采取以下措施:

 List<string> lastNames = new List<string>();
 using(SqlCeDataReader dr = mCommand.ExecuteReader())
 {
     while(dr.Read())
     {
         string lastName = (string)dr["LastName"];

         lastNames.Add(lastName);
     }
 }
List lastNames=new List();
使用(SqlCeDataReader dr=mCommand.ExecuteReader())
{
while(dr.Read())
{
字符串lastName=(字符串)dr[“lastName”];
添加(lastName);
}
}

您的代码已仅加载所需的列。有什么问题吗?
 List<string> lastNames = new List<string>();
 using(SqlCeDataReader dr = mCommand.ExecuteReader())
 {
     while(dr.Read())
     {
         string lastName = (string)dr["LastName"];

         lastNames.Add(lastName);
     }
 }