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

相关推荐
用户30745969820723 分钟前
MySQL EXPLAIN 零基础完全精通指南:从"看不懂"到"会优化"
mysql
Patrick在香港38 分钟前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据
这个DBA有点耶41 分钟前
自增主键用尽了怎么办?INT溢出、在线迁移与预防策略全解析
数据库·mysql·代码规范
迷茫的大专生1 小时前
高可用总结
redis·mysql·nginx·高可用
老纪的技术唠嗑局1 小时前
Agent 习惯性删库跑路,数据库纷纷学 Git 续命
数据库·人工智能
Data_Journal2 小时前
使用 AutoScraper 进行网页抓取:分步教程
大数据·开发语言·数据库·python·scrapy
白远山2 小时前
健身场馆无人自动化解决方案:从架构到落地实践
java·开发语言·数据库·数据挖掘·需求分析
虎虎(_ _)。゜zzZ2 小时前
SQLAlchemy入门教程
数据库·后端·python·sql·ai·sqlalchemy
迷茫的大专生3 小时前
服务器部署与 MySQL 运维学习笔记:从 Ansible 到高可用与性能优化
mysql·nginx·ansible·mysql优化·keepalive
Data_Journal3 小时前
如何将网页抓取用于机器学习
大数据·开发语言·数据库·python·scrapy