QT+MYSQL数据库处理

admin2024-05-15  0

1、打印Qt支持的数据库驱动,看是否有MYSQL数据库驱动

    qDebug() << QSqlDatabase::drivers();

QT+MYSQL数据库处理,第1张

有打印结果可知,没有MYSQL数据库的驱动

2、下载MYSQL数据库驱动,查看下面的文章配置,亲测,可以成功

Qt6 配置MySQL数据库的驱动_qt6 mysql-CSDN博客

QT+MYSQL数据库处理,第2张

3、连接数据库,如果打印open success说明MYSQL环境安装成功。

    QSqlDatabase db =QSqlDatabase::addDatabase ( "QMYSQL") ;//连接数据库
    db.setHostName("127.0.0.1"); //数据库服务器IP
    db.setUserName("root") ; //数据库用户名
    db.setPassword("1234");//密码
    db.setDatabaseName("qtDb") ; //使用哪个数据库
    //打开数据库
    if( !db.open())//数据库打开失败
    {
         qDebug()<<"open err ";
        return;
    }
    qDebug()<<"open success ";

 4、我创建的表名是 test,然后有两个字段,使用的一些sql语句如下

QT+MYSQL数据库处理,第3张

show databases;

create database qtDb;
use qtDb;

create table test(
name character(20),
age int);

select * from test;

insert into test values("lh",18);

update test set age=20 where name="lh" limit 1;

5、创建QT的UI界面

QT+MYSQL数据库处理,第4张

6、给ui界面控件命名

7、插入,生成插入按钮的槽函数

void Widget::on_insertPushButton_clicked()
{
    QString namestr = ui->insertNameLineEdit->text();
    int num = ui->insertAgeLineEdit_2->text().toInt();
    QString str = QString("insert into test values('%1', '%2')").arg(namestr).arg(num);
    QSqlQuery query;
    query.exec(str);

    qDebug()<<"insert success ";
}

8、测试插入函数,测试成功

QT+MYSQL数据库处理,第5张

9、查询代码, 将name作为关键词查询

void Widget::on_selectPushButton_2_clicked()
{
    QString searchName = ui->selectNameLineEdit_3->text();
    QString str = QString("select *from test where name = '%1'").arg(searchName);
    QSqlQuery query;
    query.exec(str);

    QString name;
    int age;
    while (query.next())
    {
        name = query.value(0).toString();
        age = query.value(1).toInt();
    }

     // QString str2 = "name:" + name +"\r\n" +"age:" + QString::number(age);
    QString str2 = QString("name:%1 \n age:%2").arg(name).arg(age);
    ui->selectTextEdit->setText(str2);
}

QT+MYSQL数据库处理,第6张

10、查询表格中所有数据

void Widget::on_selectAllPushButton_3_clicked()
{
    QString str = QString("select *from test");
    QSqlQuery query;
    query.exec(str);

    QString name;
    int age;
    QString text;
    while (query.next())
    {
        name = query.value(0).toString();
        age = query.value(1).toInt();

        text = text + "name:" + name +"   " +"age:" + QString::number(age) +"\r\n";
    }
    ui->selectAllTextEdit_2->setText(text);
}

QT+MYSQL数据库处理,第7张

11、完整工程代码

链接:https://pan.baidu.com/s/1ocgu1S8-FSFZFz4X8w7aRg?pwd=8888 
提取码:8888

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!