QT+MYSQL数据库处理

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

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

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

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

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

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语句如下

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界面

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、测试插入函数,测试成功

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);
}

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);
}

11、完整工程代码

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

相关推荐

  1. 数据库处理函数

    2024-05-10 19:34:07       33 阅读
  2. 数据库处理与分组存储

    2024-05-10 19:34:07       53 阅读
  3. Excel 数据处理记录

    2024-05-10 19:34:07       51 阅读
  4. uart接收数据处理

    2024-05-10 19:34:07       58 阅读
  5. 数据处理架构

    2024-05-10 19:34:07       55 阅读
  6. ES数据处理方法

    2024-05-10 19:34:07       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 19:34:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 19:34:07       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 19:34:07       82 阅读
  4. Python语言-面向对象

    2024-05-10 19:34:07       91 阅读

热门阅读

  1. 基于springboot的校园管理系统源码数据库

    2024-05-10 19:34:07       27 阅读
  2. 使用vscode时快速生成console.log()

    2024-05-10 19:34:07       36 阅读
  3. 了解Ansible Playbook

    2024-05-10 19:34:07       33 阅读
  4. 力扣 300. 最长递增子序列 python AC

    2024-05-10 19:34:07       29 阅读
  5. LeetCode hot100-31-G

    2024-05-10 19:34:07       34 阅读
  6. Golang 并发 Mutex 互斥锁的使用

    2024-05-10 19:34:07       30 阅读
  7. SpringBoot笔记

    2024-05-10 19:34:07       29 阅读
  8. Mysql .frm 和 .ibd 文件区别

    2024-05-10 19:34:07       35 阅读
  9. String是最基本的数据类型吗?

    2024-05-10 19:34:07       36 阅读
  10. NIO BIO AIO详解

    2024-05-10 19:34:07       35 阅读