Qt5 从 MySQL 数据库中选择数据
qt5 selecting data from mysql database
我想建立一个登录系统,我有mysql数据库我想根据我的mysql数据库用户名和密码登录,但它不起作用,我想我的代码有问题,请检查代码
void MainWindow::on_loginBtn_clicked()
{
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QMYSQL", "MyConnect");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("");
db.setDatabaseName("qtregister");
QString username = ui->loginEdit->text();
QString password = ui->loginPassword->text();
if(db.open()) {
QSqlQuery query(QSqlDatabase::database("MyConnect"));
query.prepare(QString("SELECT username and password from users where username = :username AND password = :password"));
query.bindValue(":username", username);
query.bindValue(":password", password);
if(!query.exec()) {
QMessageBox::information(this, "Failed", "Failed To Login");
}else {
QMessageBox::information(this, "Success", "Login Success");
}
}
else {
QMessageBox::information(this, "Not Connected", "Not Conneced Success");
}
}
更新
您的查询中存在错误 (有时您需要在Qt(如mysql clis或在线环境(中调试查询 http://sqlfiddle.com(
SELECT username,password from users where username = :username AND password = :password
而不是
SELECT username and password from users where username = :username AND password = :password
更正的答案
void MainWindow::on_loginBtn_clicked() {
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QMYSQL", "MyConnect");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("");
db.setDatabaseName("qtregister");
QString username = ui - > loginEdit - > text();
QString password = ui - > loginPassword - > text();
if (db.open()) {
QSqlQuery query(db);
query.prepare(QString("SELECT username , password from users where username = :username AND password = :password"));
query.bindValue(":username", username);
query.bindValue(":password", password);
if (!query.exec()) {
QMessageBox::information(this, "Failed", "Error in executing query");
} else {
while (query.next()) {
QString usernameFromDB = query.value(0).toString();
QString passwordFromDB = query.value(1).toString();
qDebug() << usernameFromDB << passwordFromDB;
if (usernameFromDB == username && passwordFromDB == password)
QMessageBox::information(this, "Success", "Login Success");
else
QMessageBox::information(this, "Failed", "Username or password error");
}
}
} else {
QMessageBox::information(this, "Not Connected", "Not Conneced Success");
}
}
相关文章:
- Qt5 从 MySQL 数据库中选择数据
- 如何为我的数组选择更大的数据类型?
- 使用选择排序对数组数据结构进行排序,但它不起作用
- 对于这个问题,是否有更好的数据结构和算法选择
- 元数据操作失败LNK2022错误 (8013118D):重复类型中的布局信息不一致 (选择设备参数):(0x020002
- 选择和 UDP 协议组合时无法接收数据
- c - 函数选择显示读取后stdin中有数据
- 高频插入 PostgreSQL,插入的数据要到几分钟后才能选择?
- 如何在MFC中导出mysql结果(选择数据)
- 哪种数据结构和设计用于选择最佳整数集
- 当您在C中定义一个值时,编译器如何选择数据类型
- C++模板方法选择正确的数据打印方式
- 在main()中为通用模板类选择数据类型
- 如何有选择地从缓冲区读取数据
- 选择C++中可包裹的数据
- 使用选择排序对名称进行排序并显示数据
- 数据结构-选择排序方法
- 根据大小选择数据类型
- 关于在c++中使用模板特性来选择数据类型
- 如何根据c++项目的不同性能要求设计或选择数据结构