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

相关推荐
丰锋ff几秒前
1.7在Qt窗口中添加右键菜单
开发语言·qt
Mico1818 分钟前
麒麟v10-MySQL InnoDB Cluster 完整部署与全场景验证(从入门到精通)
数据库·mysql
杨云龙UP33 分钟前
生产环境MySQL多实例XtraBackup全量备份与rsync异地自动传输实践
linux·运维·数据库·mysql·xtrabackup·主从复制·备份恢复
熊文豪43 分钟前
SQLServer数据迁移之后,那张报表还能不能秒出
数据库·sqlserver·电科金仓
JosieBook1 小时前
【数据库】把数据优势转化为决策优势:TimechoAI时序大模型使用解析
数据库
会编程的吕洞宾1 小时前
MySQL 慢查询从5秒到50毫秒:索引失效六大场景定位与实战调优
数据库·mysql
浅念-2 小时前
MySQL 索引底层完整详解|磁盘Page|B+树推导|聚簇非聚簇索引|索引SQL操作
大数据·数据库·b树·sql·mysql·面试·职场和发展
小马过河R2 小时前
数据仓库入门:是什么、怎么做、和数据库有什么区别?
大数据·数据库·数据仓库·架构·驾驭工程·fde
Mico182 小时前
Percona Toolkit 3.5.7 完整实战笔记(从入门到精通)
mysql
小白勇闯网安圈2 小时前
Django Form 组件详解:从表单生成到 ModelForm 数据校验
数据库·django·sqlite