void Form::on_pushButton_clicked() { QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//如果是多个的话就需要绑定下 db.setHostName("localhost");//主机名 db.setUserName("root");//用户名 db.setPassword("1234");//密码 db.setDatabaseName("qt");//数据库名 if(db.open() == false){ QMessageBox::information(this,"数据库打开失败",db.lastError().text()); return; } QSqlQuery query;//如果只有一个数据库连接 自动与当前打开的数据库绑定 query.exec("select * from student");//查询 bool ff=false; while (query.next()) { if(ui->username ->text() == query.value("name").toString() && ui ->userpw ->text() == query.value("password").toString()){ logon *ll = new logon(); ll->name = query.value("name").toString(); close(); ll->show(); ff=true; } qDebug()<<query.value("name").toString()<<query.value("password").toString(); } if(ff == false){ QMessageBox::information(this,"错误","账号或密码有误"); } }
时间: 2024-04-04 21:28:59 浏览: 58
这段代码是用于连接 MySQL 数据库,并进行查询操作。当点击 pushButton 按钮时,会执行这段代码。首先通过 `QSqlDatabase::addDatabase()` 函数添加了一个 MySQL 数据库,并设置了主机名、用户名、密码、数据库名等参数。然后通过 `QSqlDatabase::open()` 函数打开数据库连接,如果连接失败则会弹出一个提示框。接着创建了一个 `QSqlQuery` 对象,用于执行 SQL 查询语句。在 while 循环中,通过 `QSqlQuery::next()` 函数遍历查询结果集,如果找到了匹配的用户名和密码,则创建一个 `logon` 对象并显示出来,同时设置了该对象的用户名属性。如果没有找到匹配的用户名和密码,则会弹出一个提示框。值得注意的是,在这段代码中没有对 SQL 注入进行防范,可能会存在安全隐患。
相关问题
login::~login() { delete ui; } void login::mousePressEvent(QMouseEvent *e) { if(e ->button() == Qt::LeftButton) { //求坐标差值(当前点击坐标-窗口左上角坐标) p = e ->globalPos() - this->frameGeometry().topLeft(); } } void login::mouseMoveEvent(QMouseEvent *e) { if(e->buttons() & Qt::LeftButton) { move(e->globalPos() - p); } } void login::on_toolButton_2_clicked() { showMinimized(); } void login::on_toolButton_clicked() { close(); } void login::on_pushButton_clicked() { QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("127.0.0.1"); db.setPort(3306); db.setDatabaseName("duzuichat"); db.setUserName("root"); db.setPassword("111111"); if(db.open() == false){ QMessageBox::information(this,"数据库打开失败",db.lastError().text()); return; } QSqlQuery query;//自动绑定数据库 query.exec("select * from user"); bool flag=false; while (query.next()) { if(ui->username ->text() == query.value("name").toString() && ui ->userpw ->text() == query.value("password").toString()){ listwindow *ll = new listwindow(); ll->name = query.value("name").toString(); close(); ll->show(); flag=true; qDebug()<<query.value("name").toString()<<query.value("password").toString(); break; } } if(flag == false){ QMessageBox::information(this,"错误","账号不存在或密码错误!"); } } void login::on_pushButton_2_clicked() { regist *rgst = new regist; rgst->show(); }
这是一个基于Qt框架的登录界面的代码,具体实现了拖动窗口、最小化、关闭、连接MySQL数据库、查询用户信息等功能。其中`mousePressEvent`和`mouseMoveEvent`函数实现了鼠标拖动窗口的功能,`on_toolButton_2_clicked`和`on_toolButton_clicked`函数实现了最小化和关闭窗口的功能,`on_pushButton_clicked`函数则实现了连接数据库、查询用户信息、打开主界面等功能。
值得注意的是,该代码中连接MySQL数据库的相关信息(如主机名、用户名、密码等)应当根据实际情况进行修改,以确保能够连接到正确的数据库。另外,由于该代码中没有对用户输入的用户名和密码进行加密处理,因此存在一定的安全风险,建议在实际项目中进行加密处理。
oid login::on_pushButton_clicked() { QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("127.0.0.1"); db.setPort(3306); db.setDatabaseName("mychat"); db.setUserName("root"); db.setPassword("root"); if(db.open() == false){ QMessageBox::information(this,"数据库打开失败",db.lastError().text()); return; } QSqlQuery query;//自动绑定数据库 query.exec("select * from user"); bool flag=false; while (query.next()) { if(ui->username ->text() == query.value("name").toString() && ui ->userpw ->text() == query.value("password").toString()){ listwindow *ll = new listwindow(); ll->name = query.value("name").toString(); close(); ll->show(); flag=true; qDebug()<<query.value("name").toString()<<query.value("password").toString(); break; } } if(flag == false){ QMessageBox::information(this,"错误","账号不存在或密码错误!"); } } void login::on_pushButton_2_clicked() { regist *rgst = new regist; rgst->show(); }
这是一个使用Qt连接MySQL数据库的登录界面代码。在这个例子中,我们使用了QSqlDatabase和QSqlQuery类来连接MySQL数据库和执行查询,以验证登录用户名和密码是否正确。
在点击“登录”按钮时,会尝试连接MySQL数据库,如果连接失败,则会弹出错误提示框。如果连接成功,则会执行查询语句,检查用户名和密码是否匹配。如果匹配,则会打开一个新窗口,否则会弹出错误提示框。
在点击“注册”按钮时,会打开一个新的注册窗口。
需要注意的是,这个例子中使用了MySQL数据库的默认用户名和密码,如果您的MySQL数据库有不同的设置,请修改相应的参数。
另外,为了保证程序的安全性,应该对用户输入的用户名和密码进行验证和过滤,避免SQL注入等安全问题。
阅读全文