如果用户过期- Visual Basic



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

    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个查询,使程序变慢

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

第一个检查用户是否存在的查询,如果存在则返回成员id

第二个查询,检查密码是否与member_id的密码匹配,并返回过期日期。

如果它有效,就标记为答案,如果你有任何疑问就问

最新更新