2010-11-25 8 views
2

私は現在、コンソールアプリケーション(C#)を使用しています。それは、データベースからファイルを取り出し、ローカルマシン上のCドライブの関連フォルダに保存します。最終アプリケーションの実行日時の保存

私はコンソールアプリケーションを実行するたびに、データベースからすべてのファイルを取得します。

私は何をしたいのですが、実行するたびに、最後にコンソールアプリケーションを実行してから提出されたファイルだけを取り出します。現在、これはデータベースからファイルを取り出すlinq文です。私はこれを達成について移動する方法についてはわからないんだ

var titleObjects = ctn.Titles.Where(t => !t.Deleted && t.SubmissionState == 2 && t.CreatedDate >= LastAppRun && t.CreatedDate <= DateTime.Now && (t.Approved.HasValue && t.Approved.Value)).Select(t => t); 

var titleObjects = ctn.Titles.Where(t => !t.Deleted && t.SubmissionState == 2 &&(t.Approved.HasValue && t.Approved.Value)).Select(t => t); 

理想的には私は、アプリケーションの最後の実行の日付と時刻がどこかに保存され、次のようなものが欲しいです。誰かがそれについてのアドバイスがあれば、私は非常に素晴らしいだろう:)

+0

アプリケーションが起動すると、現在の日付/時刻を取得し、最後の日付と時刻と現在のメッセージを処理します。アプリが終了する前に、現在の時刻を「最後」に保存します(たとえば、時刻をYYYYMMDDHHMMSSにフォーマットしてファイルに保存できます)。あなたはそれのどの部分を確信していますか? – Jon

+0

@ジョン、私はそれが正直であるためにそれを行うための最善の方法は分かりません。 (私はそれを上に含めていない)現時点では、ユーザーにToとFromの日付を尋ねるように設定されていますが、それより少しシームレスに作業したいと思っています。私はちょうど私が(データベースを使用せずに)アプリケーション内の "最後の"日付/時間を保存するか、それが可能であったかどうかわからなかった。 – 109221793

+2

オプション私は考えることができます:1.ディスク上のあなたの選択した場所に自分のファイル。 2. 'System.Configuration' 3.' System.IO.IsolatedStorage' 4.レジストリ5.データベースそのもの。 – Ani

答えて

2

なぜデータベースにテーブルを作成し、最後の実行時間を含むレコードを挿入してみませんか?その後、更新を実行ごとにレコードから値を取得し、完了したら更新します。

または、実行がいつ発生したかを記録し、最後の実行が完了したときに実行する最大実行時間でレコードを選択することができます。

+0

こんにちは@ andynormancx..ye私はこれをやっていると思った、私はちょうどそれを行うための最善の方法であるかを見て他の意見を得たかった。あなたの返信ありがとう:) – 109221793

+0

他の唯一のオプションは、ファイルまたはレジストリにローカルで値を格納することです。データベースはそれのための最もよい場所と思われるでしょう。 – andynormancx

+0

私はあなたが正しいと思います。おそらくアプリケーションが実行された時間の記録を持つことは良いことでしょう。ありがとう:) – 109221793

5

これにはapp.settingsを使用できます。あなたがまたはあなたはまた、設定を暗号化することができ

データベース

せずにアプリケーションを使用する場合それは非常に簡単です

Properties.Settings.Default.lastRunTime = DateTime.Now; 
Properties.Settings.Default.Save(); 

としてそれだけで価値を創造し、その値を設定するために少し簡単です。暗号化のためのGoogle。

0

データベースに複数のコンソールクライアントがある場合はどうなりますか? LastAppRunの格納がクライアント側のタスクであるように見えます。

LastAppRunをファイルにシリアル化してIsolatedStorageFileに格納することができます。

他の(より醜い)オプションは、レジストリキーを取得することです。

+0

複数のクライアントは簡単にデータベースソリューションで処理されます。各クライアントの識別子を含む列を持ち、各クライアントの識別子をapp.config – andynormancx

+0

Sergeyに保存すると、コンソールアプリケーションは一人でしか使用できないため、複数のコンソールクライアントで問題は発生しません。 – 109221793

関連する問題