QT使用SQLite
在QT的widget中用tableview显示sqlite数据库表中的内容。
用QTcreator创建一个基于Widget类的窗口,再拖一个tableview到widget中,保存.
1.在widget.h中增添头文件:QtSql/qsql.h、QtSql/QsqlDatabase、QtSql/QsqlQuery、QtSql/QsqlQueryModel
2.在.pro工程文件中添加:QT+=sql
3.在widget.cpp中widget的构造函数中添加如下代码:
QsqDatabase db = QsqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
if(!db.open())
{
//错误处理
}
static QSqlQueryModel *model = new QSqlQueryModel(ui->tableview);
model->setQuery(QString("select * from table"));
model->setHeaderData(0,Qt::Horizontal,QObject::tr("编号"));
model->setHeaderData(1,Qt::Horizontal,QObject::tr("姓名"));
model->setHeaderData(2,Qt::Horizontal,QObject::tr("年龄"));
ui->tableview->setModel(model);
db->close();
这样之后,table表里的内容就会显示到tableview中了。
几点说明:
1.运行程序,提示链接错误,则需要将pro文件中添加 += sql后,重新make一下工程
2.运行程序,tableview中是空白,那么可能是因为数据库位置没有配好,先改成绝对路径试试: C:\test.db
3.明明在界面编辑中拖了一个tableview控件进去,在编辑代码那里死活找不到tableview,全部保存好几遍也不行
后来直接运行一遍程序,再编辑代码,自动完成提示里终于出现tableview了!
QT使用SQLite的更多相关文章
- Qt 操作SQLite数据库
项目中通常需要采用各种数据库(如 Qracle.SQL Server.MySQL等)来实现对数据的存储.查询等功能.下面讲解如何在 Qt 中操作 SQlite 数据库. 一.SQLite 介绍 Sql ...
- 关于QT和SQLite以及XML
就关于qt连接使用sqlite折腾了一晚上.倒也不全是因为数据库连接的问题, 主要还是数据格式各自出问题. 原来的数据库是access, 为了导入linux下的sqlite, 我把其输出格式改成了xm ...
- Qt基于sqlite数据库的管理小软件
闲来无事,写了一个基于sqlite的数据库管理小软件. 先上图 中心思想就是: 创建一个数据库 然后每一个分组对应一个数据表 然后遍历该数据表.将名字以treewidgetItem显示出来.添加删除实 ...
- QT中Sqlite的使用
环境: 静态编译过sqlite 步骤: 1.C++链接器中加入Sqlite.lib,然后在测试一下是否能正常加载Sqlite驱动 #include<QtPlugin> Q_IMPORT_P ...
- Linux之Qt利用Sqlite静态编译库(转)
参考:http://www.linuxidc.com/Linux/2011-11/47465.htm sqlite3编译安装 ------------------------arm版--------- ...
- Qt数据库(sqlite) — 总结
#include <QtSql>QT += sql QSqlDatabase类实现了数据库连接的操作QSqlQuery类用来执行SQL语句QSqlRecord类 封装数据库所有记录 第一: ...
- Qt数据库sqlite总结
QSqlDatabase类实现了数据库连接的操作QSqlQuery类用来执行SQL语句QSqlRecord类封装数据库所有记录QSqlRelationalTableModelQSqlQueryMo ...
- qt连接数据库Sqlite
#include <QCoreApplication> #include <QDebug> #include <QSqlDatabase> #include < ...
- Linux QT 连接 Sqlite数据库
#include <QApplication> #include <QDebug> #include <QSqlQuery> #include <QSqlDa ...
随机推荐
- JavaScript BOM-11-BOM的核心-window对象; window对象的控制,弹出窗口方法; 超时调用; 间歇调用; location对象常用属性; 位置操作--location.reaplace,location.reload(); BOM中的history对象; Screen对象及其常用属性; Navigator对象;
JavaScript BOM 学习目标 1.掌握什么是BOM 2.掌握BOM的核心-window对象 3.掌握window对象的控制.弹出窗口方法 什么是bom BOM(browser object ...
- sql查询未走索引问题分析之查询数据量过大
前因: 客户咨询,有一个业务sql(代表经常被执行且重要),全表扫描在系统占用资源很高(通过ash报告查询得到信息) 思路: 1.找到sql_text,sql_id 2.查看执行计划 3.查询sql涉 ...
- SQL*Plus连接符拼接输出
在日常工作中,可能需要使用重复的命令,修改的只是某个不同字段的值,可以使用连接字符串进行拼接 #本篇文档: 一.使用连接符拼接SQL 二.Spool输出查询结果 三.Spool输出xml/ html ...
- 【CSP】字符与int
[转自https://yq.aliyun.com/articles/19153] WIKIOI-1146 ISBN号码 光仔december 2014-03-01 16:20:00 浏览479 评 ...
- 20155219 2016-2017-2 《Java程序设计》第6周学习总结
20155219 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 串流设计 1.串流:Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对 ...
- hdu4292 Food 最大流
You, a part-time dining service worker in your college’s dining hall, are now confused with a new pr ...
- 【maven】maven源码打包
1.打包时附加外部Jar包 <!--编译+外部 Jar打包--> <plugin> <artifactId>maven-co ...
- centos7 部署elasticsearch
环境: 系统:centos7.3 版本:elasticsearch6.2.3 head版本:https://codeload.github.com/mobz/elasticsearch-head/zi ...
- 2D Platformer 学习
using UnityEngine; using System.Collections; /// <summary> /// 玩家控制 /// </summary> publi ...
- c++内存泄漏原因及解决办法(智能指针)
内存泄漏 由于疏忽或错误造成程序未能释放已经不再使用的内存的情况.内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费. 内存泄露的 ...