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

相关推荐
Boilermaker199218 分钟前
【Redis】哨兵与对脑裂的情况分析
数据库·redis·缓存
橘 日向22 分钟前
admin二维码字符过长导致显示失败问题
数据库·oracle
啊吧怪不啊吧38 分钟前
SQL之参数类型讲解
数据库·sql
GIS数据转换器1 小时前
带高度多边形,生成3D建筑模型,支持多种颜色或纹理的OBJ、GLTF、3DTiles格式
数据库·人工智能·机器学习·3d·重构·无人机
盒马coding1 小时前
第19节-非规范化数据类型-Drop-Type
数据库·postgresql
一人の梅雨1 小时前
大麦网关键词列表接口的产业级实现:从演出聚合到市场趋势预测的全维度技术方案
大数据·数据库·人工智能
专业软件系统开发4 小时前
药品说明书查询系统源码 本地数据库 PHP版本
数据库·查询系统源码·说明书查询源码
冉冰学姐8 小时前
SSM足球爱好者服务平台i387z(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架·足球爱好者服务平台
大飞记Python8 小时前
部门管理|“编辑部门”功能实现(Django5零基础Web平台)
前端·数据库·python·django
清风66666610 小时前
基于单片机的智能收银机模拟系统设计
数据库·单片机·毕业设计·nosql·课程设计