您好我目前有一個程序,它可以檢索WMI信息並將其存儲到數據庫,然後在一段時間後刪除較舊的記錄。目前,我正在將程序刪除超過10分鐘的記錄,並且在用新信息填充數據庫後每隔2分鐘檢查一次。在另一個每隔兩分鐘運行一次的計時器中,存儲在數據庫中的信息將顯示給用戶,這與顯示在數據庫表中的順序相同。使用LINQ將數據庫記錄添加到表頂部而不是底部
我遇到的問題發生在程序從新數據庫運行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();
第1次 硬盤大小:186GB 剩餘空間:157GB 日期時間:19/07/2009十七點27分21秒
硬盤大小:186GB 剩餘空間:157GB 日期時間: 19/07/2009 17時29分26秒
硬盤大小:186GB 剩餘空間:157GB 日期時間:19/07/2009十七點31分31秒
硬盤大小:186GB 剩餘空間:157GB 日期時間:19/07/2009 17時33分36秒
硬盤大小:186GB 剩餘空間:157GB 日期時間:19/07/2009 17:35: 41
第二時間 HDD大小:186GB 剩餘空間:157GB 日期時間:19/07/2009十七時37分46秒
HDD大小:186GB 剩餘SPAC E: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秒
3時間 硬盤容量: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秒
乾杯我對C#和LINQ相當陌生,並沒有想到,很抱歉作爲一個n00b – manemawanna 2009-07-19 17:32:30
我們都需要學習一段時間。祝你好運! – JohnFx 2009-07-19 17:34:17