こんにちは、以前のレコードが削除された後、WMI情報を取得してデータベースに保存するプログラムがありました。現在、私のプログラムはレコードを10分以上前に削除しており、データベースに新しい情報を入力した後、2分ごとにこれをチェックしています。 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回目 HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009午前17時27分21秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時: 19/07/2009 17時29分二十六秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009午前17時31分31秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009午前17時33分36秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009 17時35分: 41
2回目 HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009午前17時37分46秒
HDDサイズ:186ギガバイト 残りSPAC E:157ギガバイト 日時:19/07/2009午後05時29分26秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009 17時31分31秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009夜05時33分36秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009 17時35分41秒
第三時間 HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009 17時39分51秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009夜五時37分46秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009午後05時29分26秒
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009午前17時31分:31
HDDサイズ:186ギガバイト 残りのスペース:157ギガバイト 日時:19/07/2009 17時33分36秒
乾杯私はC#とLINQにはかなり新しいと思いますが、申し訳ありませんがn00bである – manemawanna
皆はいつか学ばなければなりませんでした。がんばろう! – JohnFx