Qt QSqlQueryModel实现查询数据库内容
使用的是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实现查询数据库内容相关推荐
- qt mysql查询中文相等_请教:Qt如何实现查询数据库中具有中文表名的表
就好像我上面所说的,你要保证源代码转换后的中文是正确的编码.你估计是 msvc 编译的吧.那货默认 gbk 编码,但 tr 不知道,转换后到内存里面的文字可能就乱码了. 办法好几个,不过不具可移植性. ...
- 用PHP程序来查询数据库内容并以表格的形式输出
<?php //1.连接数据库 $link=mysql_connect("localhost","root","158369&q ...
- QT 查询数据库 sql QSqlQueryModel
QT 查询数据库 sql QSqlQueryModel Qt中使用了自己的机制来避免使用SQL语句,它为我们提供了更简单的数据库操作和数据显示模型.它们分别是只 读的QSqlQueryModel,操作 ...
- Android实现查询数据库,把数据库内容显示到屏幕
首先,是布局文件,非常的简单,一个可以滑动的ScrollView包裹一个线性布局,线性布局里面无内容 <ScrollView xmlns:android="http://schemas ...
- php 模糊查询数据库,php模糊查询_php 简单内容查询代码 利用sql like模糊查询
摘要 腾兴网为您分享:php 简单内容查询代码 利用sql like模糊查询,中英翻译,云闪付,远离手机,易订货等软件知识,以及多多,345游戏中心,nodejs,湖北教育云app,吨吨吨表情包,dn ...
- Qt实现按照时间查询数据库中的数据
效果: 原理: 1.在保存数据的时候就需要记录当前数据条目的时戳,我是按照1970-01-01 08:00:00为起始时间点,计算当前时间离这个起始时间一共是多少毫秒,如下: QDateTime or ...
- C++Qt开发——操作MySQL数据库
Qt SQL Qt中的Qt SQL模块提供了对数据库的支持,模块中类可分为三层:驱动层,sql接口层,用户层. 驱动层:(QSqlDriver,QSqlDriverCreator,QSqlDriver ...
- Qt学习笔记之数据库
一.数据库简介 1.1.数据和数据库(DB) 用计算机进行数据处理,首先就要把信息以数据形式存储到计算机中,故数据是可以被计算机接受和处理的符号.根据所表示的信息特征不同,数据有不同的类别,如数字.文 ...
- Qt QSqlQueryModel详解
1.功能概述 QSqlQueryModel是QSqlTableModel的父类.QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能,但是QSqlQueryModel只能作为只 ...
最新文章
- python是如何进行内存管理的
- redis哨兵机制在集群中的应用
- CodeForces - 261B Maxim and Restaurant
- 如何构建优雅的ViewController
- 分布式部署Zabbix监控平台
- 一入职!就遇到MySQL亿级大表优化....
- linux 压缩解压归档
- beast软件linux用法,声卡驱动设置 - 黑苹果驱动高手篇 MultiBeast用法进阶_Linux教程_Linux公社-Linux系统门户网站...
- 介绍ML.NET——面向.NET开发人员的机器学习库
- flutter 路由
- Python 深入浅出 - HelloWorld
- win7迁移系统0x0000007B蓝屏添加NVMe驱动解决
- url 转码 java_URL 转码遇到的坑
- 贝叶斯分析好坏_高人进,关于贝叶斯估计的几个重要问题!
- python基础练习题:找到一个圆锥的体积。【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
- 43.于电脑右下角的小喇叭不见了的解决
- 【华人学者风采】童欣 微软亚洲研究院
- B016 - 基于51单片机的公交车语音报站_点阵广告屏
- linux手动重启网卡驱动,手动添加linux无线网卡驱动
- 软考软件设计师基础知识—法律法规知识