填充列表
class Student
{
public string Name {get; set;}
public string Surname {get; set;}
public int Age {get; set;}
public string Address {get; set;}
}
而且我有50,000条记录一个MySQL表。该表的结构如下图所示,
ID NAME SURNAME AGE ADDRESS
1 Joe Philip 20 Moscow
2 Misha Johny 25 London
...
而且我有一个C#代码,
List<Student> students = new List<Student>();
string sql = "SELECT name,surname,age,address FROM Students";
command.CommandText = sql;
MySqlDataReader reader = command.ExecuteReader();
while(reader.Read())
{
Student st = new Student();
st.Name = reader["Name"].ToString();
st.Surname = reader["Surname"].ToString();
st.Age = Convert.ToInt32(reader["Age"].ToString());
st.Address = reader["Address"].ToString();
students.Add(st);
}
但它的工作原理很慢。您建议如何使代码运行得更快?
UPDATE:
当我使用此代码,
DataTable dt = new DataTable();
adapter.Fill(dt);
它工作得很好,速度是非常正常的。但是,我用我自己的课程尝试这个问题有什么问题?
当然是缓慢的。不要一次将50k条记录读入内存! –
这可能会达到最快,这里没有明显的增强或忽略 - 你是否需要记忆中的所有记录? – BrokenGlass
出于好奇,为什么你需要将整个数据库表读入内存_at all_?数据库的总体思想是,它们可能保存的数据比可以放入内存的数据多得多,并且我们应该通过记录来处理数据记录。 – Vlad