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

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

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

using (var conn = new SqlConnection(Properties.Settings.Default.DBConnectionString)) { using (var cmd = conn.CreateCommand()) { conn.Open(); List TagList = new List(); for (int i = 0; i < TagList.Count; i++) TagList[i].Add("Data from database"); cmd.ExecuteNonQuery(); } } 

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

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

 public IEnumerable 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")); } } } } 

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

 List tags = GetTagList().ToList(); 

这样就可以了(如果我没有做任何错别字……)

 private void LoadList() { List tagsList = new List(); using (IDbConnection connection = new SqlConnection(Properties.Settings.Default.DBConnectionString)) { connection.Open(); using (IDbCommand command = connection.CreateCommand()) { command.CommandText = "SELECT TAGCOLUMN FROM TAGSTABLE"; using (IDataReader reader = command.ExecuteReader()) { while (reader.Read()) { if (!reader.IsDBNull(0)) tagsList.Add(reader.GetString(0)); } reader.Close(); } } connection.Close(); } } 

编辑:

当然,您必须将select语句从数据库更改为正确的语句。 我只是用一个假的来向你展示放在那里的东西。

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

 public List getFromDataBase() { List result = new List(); SqlConnection con = new SqlConnection("connectionString"); try { con.Open(); DataTable tap = new DataTable(); new SqlDataAdapter(query, con).Fill(tap); result = tap.Rows.OfType().Select(dr => dr.Field("columnName")).ToList(); } catch (Exception) { //Exception } finally { if (con != null) con.Close(); } return result; }