如何使用SQL Server数据库中的值填充列表?

Pom*_*ter 3 c# sql-server list

该列表将根据我的数据库中有多少项而增长和缩小.

我需要填充列表而不是列表框.我知道我需要打开一个连接.

using (var conn = new SqlConnection(Properties.Settings.Default.DBConnectionString))
{
    using (var cmd = conn.CreateCommand())
    {
        conn.Open(); 

        List<string> TagList = new List<string>();
        for (int i = 0; i < TagList.Count; i++)
            TagList[i].Add("Data from database");

        cmd.ExecuteNonQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)

我真的不确定如何做到这一点,我确信我的方法看起来非常错误,所以我真的需要帮助.

有人能告诉我我做错了什么吗?

Dam*_*ith 7

public IEnumerable<string> GetTagList()
{
    using (var connection = new SqlConnection(Properties.Settings.Default.DBConnectionString))
    using (var cmd = connection.CreateCommand())
    {
        connection.Open();
        cmd.CommandText = "select Tag from TagsTable"; // update select command accordingly
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                yield return reader.GetString(reader.GetOrdinal("Tag"));
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以按如下方式调用它

List<string> tags = GetTagList().ToList();
Run Code Online (Sandbox Code Playgroud)


JCO*_*CO9 5

我想分享我的解决方案,希望将来帮助某人:

public List<string> getFromDataBase() 
{
    List<string> result = new List<string>();
    using(SqlConnection con = new SqlConnection("connectionString"))
    {
        con.Open();
        DataTable tap = new DataTable();
        new SqlDataAdapter(query, con).Fill(tap);
        result = tap.Rows.OfType<DataRow>().Select(dr => dr.Field<string>("columnName")).ToList();
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)