繁体   English   中英

从C#中的SQL查询获取列表

[英]Getting a list from a SQL query in C#

我想将SQL查询的结果转换为C#列表。 我尝试使用以下无效的代码-Visual Studio返回

System.Data.dll中发生了类型为'System.InvalidCastException'的未处理异常

码:

public List<string> carList(int id)
{
        List<string> list = new List<string>();

        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();

        string query = "SELECT ID FROM Cars WHERE custID = " + id;
        SqlCommand cmd = new SqlCommand(query, conn);

        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                list.Add(reader.GetString(0));
            }
        }

        conn.Close();

        return list;
    }

SQL查询的结果应仅为具有一个或多个ID(整数)的单列。 然后,我想将所有这些都放入列表中。 希望这可以使您对我正在尝试做的事情有所了解。

如果有人可以指出我在这里做错了什么,那么我将非常感激。

按照评论中的建议尝试一下

while (reader.Read())
{
    list.Add(reader.GetInt32(0).ToString());
}

第0个索引上的数据类型应为整数,在添加到列表之前应将其转换为字符串。

如果您想以更通用的方式将任何单列结果集转换为字符串列表,则可以使用:

while (reader.Read())
{
    list.Add(reader.GetValue(0).ToString());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM