最初に、ユーザーがログインしている場合は列 LoginStatus を持つテーブル UserAccounts を持っています loginstatus = 1 それ以外の場合はログアウトした場合 = 0
ユーザーが誤ってコンピューターのプラグを抜いたり、電源障害が発生した場合に、どのコードが処理されると思いますか? loginstatus = 0 を変更する必要があります。そうしないと、これらのイベントが発生した場合に自動ログアウトされます。
ちなみに私はSQLサーバーを使用しています
フォームを閉じるときにこのコードを使用しましたが、アプリケーションの実行中にスタートメニューからコンピューターを直接シャットダウンした場合にのみ、ログインステータスが変更されます
private void MPTestTablesFormClosing(object sender, FormClosingEventArgs e)
{
if(e.CloseReason == CloseReason.WindowsShutDown)
{
var repo = new UserAccountsRepo();
var backRepo = new UserLogRepo();
var logs = new UserLogs
{
UserAccount = Globals.UserAccount,
LogOutTime = DateTime.Now
};
Globals.UserAccount.LogStatus = 0;
repo.Update(Globals.UserAccount);
backRepo.Update(logs);
Globals.UserAccount = null;
}
}