如何使用SQL Server查询填充一般字符串列表

本文关键字:字符串 列表 填充 查询 何使用 SQL Server | 更新日期: 2023-09-27 18:26:33

我需要用单列查询的结果集填充一个通用的字符串列表。我有这个代码:

private List<String> _mammalsList; 
. . .
private void LoadMammalStringList()
{
    _mammalsList = new List<string>();
    using (SqlConnection con = new SqlConnection(PlatypusUtils.DuckbillConnStr))
    {
        using (SqlCommand cmd = new SqlCommand(PlatypusUtils.SelectMammalIdQuery, con))
        {
            cmd.CommandType = CommandType.Text;
            using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
            {
                DataTable dt = new DataTable();
                sda.Fill(dt);
                // Now that the data is in dt, how can I pull it out of there and put it into the List<String>?
            }
        }
    }
}

但不知道如何访问返回的数据集。我该怎么做?

如何使用SQL Server查询填充一般字符串列表

将"what now?"注释替换为以下代码:

foreach (DataRow row in dt.Rows)
{
    _mammalsList.Add(row.ItemArray[0].ToString());
}

上下文:

private void LoadMammalsStringList()
{
    _mammalsList = new List<string>();
    using (SqlConnection con = new SqlConnection(PlatypusUtils.DuckbillConnStr))
    {
        using (SqlCommand cmd = new SqlCommand(PlatypusUtils.SelectMammalIdQuery, con))
        {
            cmd.CommandType = CommandType.Text;
            using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
            {
                DataTable dt = new DataTable();
                sda.Fill(dt);
                foreach (DataRow row in dt.Rows)
                {
                    _mammalsList.Add(row.ItemArray[0].ToString());
                }
            }
        }
    }
}

更新

正如Momar所暗示的,这也起作用:

//foreach (DataRow row in dt.Rows)
//{
//    _membersList.Add(row.ItemArray[0].ToString());
//}
_mammalsList = dt.AsEnumerable()
   .Select(r => r.Field<string>("mammalId"))
   .ToList();

我不知道哪种方法更可取。