如何使用SQLReader返回List <string> </string>

时间:2012-02-20 19:02:38

标签: c# asp.net sql

我们有一个存储过程,它返回一列字符串。我们想使用SqlHelper.ExecuteReader(ConnectionString,...)返回一个列表&lt;字符串&gt;但不确定语法。

我应该更明确。我不想循环阅读器并自己构建列表。我希望有一个更简洁,“一个班轮”或者某种我不知道的铸造。

3 个答案:

答案 0 :(得分:2)

您可以使用此扩展方法:

public static IEnumerable<IDataRecord> AsEnumerable(this IDataReader reader)
{
    while (reader.Read())
    {
        yield return reader;
    }
}

...

using (var reader = SqlHelper.ExecuteReader(connectionString, query))
{
    var list = reader.AsEnumerable().Select(r => r.GetString(0)).ToList();
}

答案 1 :(得分:0)

看看Retrieving Data Using a C# .NET DataReader。该示例为此类问题提供了解决方案。

答案 2 :(得分:0)

你尝试过这样的事吗?

var sl = new List<string>();

// Edit accordingly
string sql = "";

// Edit accordingly
string cs = "Data Source= ;Initial Catalog= ;Integrated Security= ;";

using (var conn = new SqlConnection(cs))
{
    conn.Open();
    using (var cmd = new SqlCommand(sql, conn))
    {
        using (var dr = new command.ExecuteReader())
        {
            var myRow = dr["MyColumn"];
            sl.Add(myRow.ToString());
        }
    }
}