【发布时间】:2013-09-11 22:58:32
【问题描述】:
我想我有一个使用我所有内存的列表视图。让我解释一下我在做什么
我有一个设备,我从中获取消息,我给它们加上时间戳,然后将它们添加到 sqldatabase 中
myConnection.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Messages (Time, Message) Values ('" + DateTime.Now + "', '"+sqlMessage+"')", myConnection);
cmd.ExecuteNonQuery();
myConnection.Close();
UpdateTable();
这是我更新列表视图的方法:
myConnection.Open();
myCommand.Connection = myConnection;
adapter.SelectCommand = myCommand;
myCommand.CommandText = "SELECT * FROM Messages";
DataSet ds = new DataSet();
adapter.Fill(ds);
lvwMessages.DataContext = ds.Tables[0].DefaultView;
myConnection.Close();
当我让它运行一段时间后,我的程序通常会耗尽内存。我假设它是列表视图从数据库加载了太多消息。但是假设我在显示的屏幕上需要 15 行消息。我如何只加载我需要的 15 个,然后从内存中弹出不需要显示的那些,然后加载新的?
【问题讨论】: