如何使用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; }