我正在尝试从 SQL 表中获取所有数据,并使用 C# 编程语言将其存储在 List 中。
我使用的 SQL 语句是:
private string cmdShowEmployees = "SELECT * FROM Employees;";
这与函数在同一类中使用
public List<string> showAllIdData()
{
List<string> id = new List<string>();
using (sqlConnection = getSqlConnection())
{
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandText = cmdShowEmployees;
SqlDataReader reader = sqlCommand.ExecuteReader();
while (reader.Read()) {
id.Add(reader[0].ToString());
}
return id;
}
}
和这里
public List<string> showAllActiveData()
{
List<string> active = new List<string>();
using (sqlConnection = getSqlConnection())
{
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandText = cmdShowEmployees;
SqlDataReader reader = sqlCommand.ExecuteReader();
while (reader.Read()) {
active.Add(reader[1].ToString());
}
return active;
}
我必须以这种方式再创建 9 个函数才能从Employees 表中取出所有数据。这似乎非常低效,我想知道是否有更优雅的方式来做到这一点。
我知道使用适配器是一种方法,但我认为不可能将填充的适配器转换为列表、列表列表等。
SqlDataAdapter adapter = sqlDataCollection.getAdapter();
DataSet dataset = new DataSet();
adapter.Fill(dataset, "idEmployees");
dataGridView1.DataSource = dataset;
dataGridView1.DataMember = "idEmployees";
有任何想法吗?
原文由 Brian Cotton 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您必须以这种方式使用阅读器,为什么不创建一个保存表格行数据的对象。
这样你就可以通过你的阅读器循环如下: