本文章主要内容是总结了一个函数。该函数的功能是在登录界面输入用户名和密码,然后通过连接远程服务器的MySql5.7.17数据库,在数据库中找到是否有对应的用户名和密码。如果有,则返回true,否则返回false。最后给出了我写的源代码下载地址,需要的可以下载查看,具体编写内容如下所述:
一、先制作一个普通的登录界面,不会的话可以参考下面的教程:http://www.qter.org/portal.php?mod=view&aid=29
二、新建一个类DatabaseData,然后在DatabaseData类中,添加一个VerificationLogin成员函数。该函数的功能是:传入登录界面的用户名和密码,然后在数据库中查找是否存在一组与输入界面对应的用户名和密码。如果有,则返回true,如果没有返回false。其中,查找数据库中是否存在一组登录界面的用户名和密码,可以通过遍历服务器数据库操作进行。其中,VerificationLogin实现函数如下所示:
bool DatabaseData::VerificationLogin(QString Username, QString 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 id= query.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();//设置光标到用户编辑框
}
四、程序构建执行结果如下所示:
远程服务器数据库内容
登录用户名:10002 登录密码:1235678
登录成功
登录失败界面(用户名:123 密码:12)
由上图所示的两个例子,一个登录成功和一个登录失败的例子可以看出,本文章总结的VerificationLogin函数是可用。
源代码下载地址:http://download.csdn.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