填充列表
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