如何在sql server和c#桌面应用程序出现电源故障时保持登录标志?
我有以下情况: 具有用户登录表的数据库。 c#桌面应用程序。 我要做的是,当我登录时,我在数据库中将该用户的登录标志设置为true,当该用户注销或退出应用程序时,我将该标志更改回false。 这项工作非常完美,但当发生电源故障或有人刚刚终止应用程序进程时,该标志仍为真,因此不允许再次登录,并显示消息“you ready login”如何在sql server和c#桌面应用程序出现电源故障时保持登录标志?,c#,database,sql-server-2008,desktop-application,C#,Database,Sql Server 2008,Desktop Application,我有以下情况: 具有用户登录表的数据库。 c#桌面应用程序。 我要做的是,当我登录时,我在数据库中将该用户的登录标志设置为true,当该用户注销或退出应用程序时,我将该标志更改回false。 这项工作非常完美,但当发生电源故障或有人刚刚终止应用程序进程时,该标志仍为真,因此不允许再次登录,并显示消息“you ready login” 我该如何处理这个问题呢?不用担心这个标志。如果用户有权访问这些表,以便应用程序可以读取该标志,那么他们必须登录 数据库服务器将为您管理连接。您的应用程序将提供适当的
我该如何处理这个问题呢?不用担心这个标志。如果用户有权访问这些表,以便应用程序可以读取该标志,那么他们必须登录 数据库服务器将为您管理连接。您的应用程序将提供适当的连接字符串,并且您的安全策略将要求(或不要求)用户名、密码等。当您将数据库作为数据源添加到项目中时,Visual Studio将填充良好的工作代码来处理所有这些问题 在桌面应用程序的单个会话的运行期间,可能会多次建立和断开与服务器的连接。让框架为您处理它:保持简单
如果您需要用户桌面应用程序之外的信息(例如数据库的其他用户),那么您需要在数据库端而不是在客户端代码中实现规则。@Mike of SST是正确的,但出于您的某种原因 您可以执行以下操作
当用户尝试重新登录且[login]标志为true且DateTimeOfLogin值之间的差值超过10秒时,则表示您的应用程序已终止或未正确关闭,或者发生了电源故障。实际上,我有一个数据库,多个C#桌面应用程序正在访问它。我使用连接字符串进行连接。我不希望应用程序的其他实例使用相同的凭据登录,所以我将该用户的标志标记为true。但当该用户异常关机时,它仍然为真。现在,当它回来时,应用程序如何知道这是否是一个公平的登录,并且仅仅因为异常终止,标志是否为真,并让他登录。实现这一点的最佳位置可能是SQL Server本身,因为它管理登录。有关一个可能的选项,请参阅以下文章: