Qt mysql数据库表的增加,删除,修改,查询操作

连接mysql数据库

cpp 复制代码
bool MainWindow::connectToDatabase(QSqlDatabase &db, const QString &host, const QString &dbName, const QString &user, const QString &password)
{
    db = QSqlDatabase::addDatabase("QMYSQL");
       db.setHostName(host);
       db.setDatabaseName(dbName);
       db.setUserName(user);
       db.setPassword(password);

       if (!db.open()) {
           qDebug() << "数据库连接失败:" << db.lastError().text();
           return false;
       } else {
           qDebug() << "数据库连接成功!";
           return true;
       }
}

增加数据库表的数据:

cpp 复制代码
QString username=ui->lineEdit->text();
QString password=ui->lineEdit_2->text();
QSqlQuery query;
//QString username=ui->lineEdit->text();
query.prepare("insert into sys.user values(?,?)");
query.addBindValue(username);
query.addBindValue(password);
if(!query.exec()){
    qDebug()<<"无法插入数据";
    QMessageBox::information(NULL, "增加表数据","增加失败",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
}else{
QMessageBox::information(NULL, "增加表数据","增加成功",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
Dialog::close();
}

查询数据库中的数据:

cpp 复制代码
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    QString host="localhost";
    QString dbName="sys";
    QString user="root";
    QString password="12345";
    this->connectToDatabase(db,host,dbName,user,password);
    QSqlQuery query=this->queryDatabase(db,"select * from user");
    /*while (query.next()) {
        QString result = query.value(0).toString();
        QString result1 = query.value(1).toString();
        qDebug() << result<<"   "<<result1;
    }*/
    QSqlQueryModel *model=new QSqlQueryModel(ui->tableView);
    model->setQuery(query);//将查询结果绑定到模型上

    ui->tableView->setModel(model);

修改表中的数据:

cpp 复制代码
QString username = ui->lineEdit_3->text();
    QString password = ui->lineEdit_2->text();
    QSqlQuery query;
    //QString username=ui->lineEdit->text();
    //QSqlQuery query;
    QString str=QString("update user set password = ? where username = ?");
    query.prepare(str);
    query.addBindValue(password);
    query.addBindValue(username);
    if (!query.exec()) {
        qDebug() << "更新失败:" << query.lastError().text();
        QMessageBox::information(NULL, "更新表数据","更新失败",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
    } else {
        qDebug() << "更新成功";
        QMessageBox::information(NULL, "更新表数据","更新成功",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
        Dialog1::close();
    }

删除表中的数据:

cpp 复制代码
QString username = ui->lineEdit_3->text();
    QSqlQuery query;
    //QString username=ui->lineEdit->text();
    //QSqlQuery query;
    QString str=QString("delete from user where username='%1'").arg(username);
    if (!query.exec(str)) {
        qDebug() << "删除失败:" << query.lastError().text();
    } else {
        qDebug() << "删除成功";
    }

这就是Qt对数据库表的增加,删除,修改,查询操作的代码。

查询某个用户的数据:

cpp 复制代码
 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    QString host="localhost";
    QString dbName="sys";
    QString user="root";
    QString password="12345";
    this->connectToDatabase(db,host,dbName,user,password);
    QString username = ui->lineEdit_4->text();
    QSqlQuery query=this->queryDatabase(db,QString("select * from user where username = '%1'").arg(username));
    /*while (query.next()) {
        QString result = query.value(0).toString();
        QString result1 = query.value(1).toString();
        qDebug() << result<<"   "<<result1;
    }*/
    QSqlQueryModel *model=new QSqlQueryModel(ui->tableView);
    model->setQuery(query);//将查询结果绑定到模型上

    ui->tableView->setModel(model);

能够实现界面的跳转整体代码如下:https://download.csdn.net/download/qq_32663053/89160527

相关推荐
爱写代码的阿森32 分钟前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_1 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白2 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
窝子面2 小时前
手搓最简前后端协作-node
javascript·数据库
吳所畏惧2 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈2 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HPFBoy2 小时前
log4net 数据库存日志正确配置
数据库
liuxiaowei33 小时前
【绝版教程】新版MySQL DBA高级实战进阶班 MySQL8.0 姜承尧-腾讯数据库总监
数据库·mysql·dba
破碎的南瓜3 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql