如果用户已过期 - Visual Basic

If User is Expired - Visual Basic

所以我有一个 sql 数据库,其中包含称为 'users' 的一列 - 在 'users' table 下面是以下行; member_id(随机生成),login(用户名),passwd(密码),expiry(服务过期的时候,比如2016年8月18日服务过期。这个expiry在Unix时间戳:\),类型(帐户类型,例如 admin 或 user ),以及他们购买用于注册的密钥——所有这些都在数据库下 'vpam_xxxxxtest',我开发了一个可视化的基本登录系统,从用户中选择 table,用户名和密码,检查用户输入,然后登录;如果数据与数据库中的数据相匹配,它就可以完美运行,但与此同时,我想知道如何编写代码来检查用户的过期数据,如果帐户已过期,则显示另一种形式?

    Dim Myadapter As New MySqlDataAdapter
    Dim Sqlquery = "SELECT * From users WHERE login='" & UsernameTextBox.Text & "'AND passwd ='" & StringtoMD5(PasswordTextBox.Text) & "';"
    Dim Command As New MySqlCommand
    Command.Connection = MysqlConnection
    Command.CommandText = Sqlquery
    Myadapter.SelectCommand = Command
    Dim Mydata As MySqlDataReader
    Mydata = Command.ExecuteReader
    If Mydata.HasRows = 0 Then

如何将下面的 SQL 解决方案集成到代码中?

这很简单,假设您知道如何执行 SQL 查询。 正如您在评论中所说,您在此过程中检查用户凭据是否正确(用户名和密码)您可以使用此代码获取用户的到期日期

String usr = "the username"
String pw = "the password"

您连接到您的数据库(MSSQL、MySQL 或其他)并执行此查询

SELECT expiry FROM users WHERE login = usr AND passwd = pw

这样你就可以同时做两件事,检查登录是否正确并获取到期日期(如果你想通过更改查询可以获取更多数据)。

为什么采用这种方法?它只会对数据库执行一次查询,使程序更快。

然后你检查查询是否返回任何行,如果是,你 运行 当前 unix 日期与你在查询中获得的日期 如果你想指定错误,比如(无效的用户名,无效的密码)等等你必须运行 2 queries making the program slower

SELECT member_id FROM users WHERE login = usr

SELECT expiry FROM users WHERE passwd = pw AND member_id = uid

首先查询检查用户是否存在,如果存在 returns 成员 ID

第二次查询以检查密码是否与 member_id 的密码和 returns 到期日期匹配。

如果有效就标记为答案,有疑问就问