使用的是QSqlQueryModel这个类,结合QTableView来显示。在链接数据库后,根据表名,自动去查询和显示表数据。

一、链接数据库

db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName(host);
    db.setUserName(username);
    db.setPassword(pwd);
    db.setDatabaseName(db_name);
    db.setConnectOptions("MYSQL_OPT_RECONNECT=1");

二、查询数据库表,获取表数据

void MysqlSettingDialog::on_pushButton_find_clicked()//查询
{DataOperator *sql = DataOperator::getInstance(); //链接的数据库if (sql->isOpen()){QSqlQueryModel *m_model = new QSqlQueryModel(ui->tableView);int index = ui->comboBox->currentIndex();QString table_name = "";switch (index) //根据不同的选择,查询不同的表{case 0:table_name = "users"; break;case 1:table_name = "tools"; break;case 2:table_name = "tooldefaultparam"; break;case 3:table_name = "temperature"; break;case 4:table_name = "coefficient"; break;case 5:table_name = "latestcoefficient"; break;case 6:table_name = "products"; break;default:break;};m_model->clear();QVariantList list;//获取表的列名QString cmd = QString("SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE table_name = '%1';  ").arg(table_name);if (sql->execute(cmd)){foreach(QSqlRecord record, sql->getLastQueryResult()){list << record.value(record.indexOf("COLUMN_NAME"));}}//查询表数据m_model->setQuery(QString("SELECT * FROM %1").arg(table_name));//把数据和列名对应上for (int i = 0; i < list.size(); i++){m_model->setHeaderData(i, Qt::Horizontal, list.at(i));}ui->tableView->setModel(m_model);//数据放置进去  ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);//根据内容自动调整宽度}else{QMessageBox::warning(this, QStringLiteral("错误"), QStringLiteral("未连接,请检查."));}
}

效果图如下:

Qt QSqlQueryModel实现查询数据库内容相关推荐

  1. qt mysql查询中文相等_请教:Qt如何实现查询数据库中具有中文表名的表

    就好像我上面所说的,你要保证源代码转换后的中文是正确的编码.你估计是 msvc 编译的吧.那货默认 gbk 编码,但 tr 不知道,转换后到内存里面的文字可能就乱码了. 办法好几个,不过不具可移植性. ...

  2. 用PHP程序来查询数据库内容并以表格的形式输出

    <?php     //1.连接数据库     $link=mysql_connect("localhost","root","158369&q ...

  3. QT 查询数据库 sql QSqlQueryModel

    QT 查询数据库 sql QSqlQueryModel Qt中使用了自己的机制来避免使用SQL语句,它为我们提供了更简单的数据库操作和数据显示模型.它们分别是只 读的QSqlQueryModel,操作 ...

  4. Android实现查询数据库,把数据库内容显示到屏幕

    首先,是布局文件,非常的简单,一个可以滑动的ScrollView包裹一个线性布局,线性布局里面无内容 <ScrollView xmlns:android="http://schemas ...

  5. php 模糊查询数据库,php模糊查询_php 简单内容查询代码 利用sql like模糊查询

    摘要 腾兴网为您分享:php 简单内容查询代码 利用sql like模糊查询,中英翻译,云闪付,远离手机,易订货等软件知识,以及多多,345游戏中心,nodejs,湖北教育云app,吨吨吨表情包,dn ...

  6. Qt实现按照时间查询数据库中的数据

    效果: 原理: 1.在保存数据的时候就需要记录当前数据条目的时戳,我是按照1970-01-01 08:00:00为起始时间点,计算当前时间离这个起始时间一共是多少毫秒,如下: QDateTime or ...

  7. C++Qt开发——操作MySQL数据库

    Qt SQL Qt中的Qt SQL模块提供了对数据库的支持,模块中类可分为三层:驱动层,sql接口层,用户层. 驱动层:(QSqlDriver,QSqlDriverCreator,QSqlDriver ...

  8. Qt学习笔记之数据库

    一.数据库简介 1.1.数据和数据库(DB) 用计算机进行数据处理,首先就要把信息以数据形式存储到计算机中,故数据是可以被计算机接受和处理的符号.根据所表示的信息特征不同,数据有不同的类别,如数字.文 ...

  9. Qt QSqlQueryModel详解

    1.功能概述 QSqlQueryModel是QSqlTableModel的父类.QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能,但是QSqlQueryModel只能作为只 ...

最新文章

  1. python是如何进行内存管理的
  2. redis哨兵机制在集群中的应用
  3. CodeForces - 261B Maxim and Restaurant
  4. 如何构建优雅的ViewController
  5. 分布式部署Zabbix监控平台
  6. 一入职!就遇到MySQL亿级大表优化....
  7. linux 压缩解压归档
  8. beast软件linux用法,声卡驱动设置 - 黑苹果驱动高手篇 MultiBeast用法进阶_Linux教程_Linux公社-Linux系统门户网站...
  9. 介绍ML.NET——面向.NET开发人员的机器学习库
  10. flutter 路由
  11. Python 深入浅出 - HelloWorld
  12. win7迁移系统0x0000007B蓝屏添加NVMe驱动解决
  13. url 转码 java_URL 转码遇到的坑
  14. 贝叶斯分析好坏_高人进,关于贝叶斯估计的几个重要问题!
  15. python基础练习题:找到一个圆锥的体积。【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  16. 43.于电脑右下角的小喇叭不见了的解决
  17. 【华人学者风采】童欣 微软亚洲研究院
  18. B016 - 基于51单片机的公交车语音报站_点阵广告屏
  19. linux手动重启网卡驱动,手动添加linux无线网卡驱动
  20. 软考软件设计师基础知识—法律法规知识

热门文章

  1. PM的基石(1) - PMP (国际项目管理师)
  2. Java的abstract
  3. 如何安装虚拟机linux
  4. Python:使用cv2模块快速生成素描
  5. 蓝桥杯复数运算python
  6. 小杜机器人线下店_泡泡玛特线下机器人商店突破1000台!
  7. 无线通信关键技术---扰码
  8. JUnit与Mockito单元测试典型示例
  9. 国外十几种国外撸美金项目适合小白们
  10. Java访问QingCloud青云对象存储