Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)

本文章主要内容是总结了一个函数。该函数的功能是在登录界面输入用户名和密码,然后通过连接远程服务器的MySql5.7.17数据库,在数据库中找到是否有对应的用户名和密码。如果有,则返回true,否则返回false。最后给出了我写的源代码下载地址,需要的可以下载查看,具体编写内容如下所述:

一、先制作一个普通的登录界面,不会的话可以参考下面的教程:http://www.qter.org/portal.php?mod=view&aid=29

Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)


Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)


二、新建一个类DatabaseData,然后在DatabaseData类中,添加一个VerificationLogin成员函数。该函数的功能是:传入登录界面的用户名和密码,然后在数据库中查找是否存在一组与输入界面对应的用户名和密码。如果有,则返回true,如果没有返回false。其中,查找数据库中是否存在一组登录界面的用户名和密码,可以通过遍历服务器数据库操作进行。其中,VerificationLogin实现函数如下所示:

bool DatabaseData::VerificationLogin(QString UsernameQString Password)

{

    //把登录信息的账号密码传进来,然后跟数据库进行比较,相同则验证成功,否则失败

 

    //连接数据库

    QSqlDatabase db QSqlDatabase::addDatabase("QMYSQL");

    db.setHostName("127.0.0.1");//由于是公司数据库地址,不方便直接写出,故用127.0.0.1替代。这个必须要替换成自己的数据库地址

    db.setDatabaseName("mqtt");

    db.setUserName("admin");

    db.setPassword("admin");

    if(db.open())

    {

       //数据库操作

       QSqlQuery query(db);//实例一个查询对象SELECT*FROMmqtt.account;

       if(query.exec("SELECT FROM mqtt.account where id >= 0"))//代表选择id=3的一行内容

       {

           while(query.next())//遍历数据表格mqtt.account每一行,从第0行到最后一行

           {

                QString idquery.value(0).toString().trimmed();//trimmed函数表示去除QString两边的空格

                QString password=query.value(1).toString().trimmed();

                if((Username.trimmed() == id)&&(Password == password))

                    return true;

           }

           db.close();

       }

    }

    return false;

}


三、在登录界面的登录按钮的槽函数里面,添加如下内容,可以调用该函数

DatabaseData database;

    //判断用户名和密码是否正确

    //如果错误则弹出警告对话框

    //读取数据库的用户名和密码

    if(database.VerificationLogin(ui->UserNameEdit->text().trimmed(),ui->PasswordEdit->text().trimmed()))//trimmed表示修剪的,去掉编辑框前面的空格ui->UserNameEdit->text().trimmed()=="admin"&&ui->PasswordEdit->text()=="nengxing"

    {

       //登录成功,则触发accept函数

       accept();

       QMessageBox::warning(this,tr("警告!"),tr("登录成功!"),QMessageBox::Yes);

    }

    else

    {

       //登录失败,清空用户编辑框,密码编辑框,设置光标到用户编辑框

       QMessageBox::warning(this,tr("警告!"),tr("用户名或者密码错误!"),QMessageBox::Yes);

       ui->UserNameEdit->clear();//清空用户编辑框

       ui->PasswordEdit->clear();

       ui->UserNameEdit->setFocus();//设置光标到用户编辑框

    }


四、程序构建执行结果如下所示:

Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)

远程服务器数据库内容


Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)                                    Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)

登录用户名:10002   登录密码:1235678



Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)

登录成功


Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)

登录失败界面(用户名:123    密码:12)


由上图所示的两个例子,一个登录成功和一个登录失败的例子可以看出,本文章总结的VerificationLogin函数是可用。



源代码下载地址:http://download.****.net/download/naibozhuan3744/10186803

将文件解压后,再解压libmysql_win32(32位libmysql.dll)文件。将libmysql.dll和libmysql.lib两个文件放入安装Qt的bin目录下。我安装Qt的bin目录是:D:\Qt\Qt5.9.3\5.9.3\mingw53_32\bin。否则该代码用不了,会出现没有数据库驱动的提示。



参考内容:

http://www.qter.org/portal.php?mod=view&aid=29

http://www.qter.org/portal.php?mod=view&aid=54