【发布时间】:2009-07-19 17:16:39
【问题描述】:
您好,我目前有一个程序可以检索 WMI 信息并将其存储到数据库中,然后在一段时间后删除较旧的记录。目前,我正在让我的程序删除超过 10 分钟的记录,并在用新信息填充数据库后每 2 分钟检查一次。在另一个每 2 分钟运行一次的计时器中,将存储在数据库中的信息显示给用户,其显示顺序与它在数据库表中出现的顺序相同。
当程序在 10 分钟后删除记录时从新数据库运行时,我遇到的问题发生了,而不是将新记录添加到数据库表的末尾,它们显示在顶部。当一些旧数据被删除后重新打开程序时,也会发生这种情况。
下面我添加了显示我的数据如何添加到数据库以及如何删除的代码(这发生在 2 个单独的类中)。在此之下,我包含了一些示例输出数据,以便您理解我的意思。
基本上我需要一种方法来解决这个问题,因为数据需要按照基于 DateTime 收集的顺序显示,所以如果你能发现任何东西,我将不胜感激,如果不是,解决这个问题的最佳方法是数据显示前排序?
DateTime dateTime = DateTime.Now.Subtract(new TimeSpan(0, 0, 10, 0));
var result2 = (from b in hddInfo
where b.DateTime < dateTime
select b).DefaultIfEmpty();
foreach (TblHDDInfo record2 in result2)
{
if (record2 != null)
{
localDB.TblHDDInfo.DeleteOnSubmit(record2);
}
}
localDB.SubmitChanges();
TblHDDInfo hddInfoAdd = new TblHDDInfo();
hddInfoAdd.DeviceID = deviceID;
hddInfoAdd.IpAdd = ipAdd;
hddInfoAdd.Size = size;
hddInfoAdd.FreeSpace = freeSpace;
hddInfoAdd.DateTime = dateTime;
localDB.TblHDDInfo.InsertOnSubmit(hddInfoAdd);
localDB.SubmitChanges();
第一次 硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:27:21
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:29:26
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:31:31
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:33:36
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:35:41
第二次 硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:37:46
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:29:26
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:31:31
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:33:36
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:35:41
第三次 硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:39:51
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:37:46
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:29:26
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:31:31
硬盘大小:186GB 剩余空间:157GB 日期时间:19/07/2009 17:33:36
【问题讨论】: