27.Qt操作sqlite3数据库
1 sqlite3操作编程
问题1 驱动无法加载
QSqlDatabase: QSQLITE driver not loaded
解决办法将Qt自带安装目录下的sql文件拷贝到可执行文件目录下。
2 连接数据库
//1.检查数据库的连接是否存在if (QSqlDatabase::contains("qt_sql_default_connection")){db = QSqlDatabase::database("qt_sql_default_connection");}else{db = QSqlDatabase::addDatabase("QSQLITE");}db.setDatabaseName(file_db);if (!db.open()){QMessageBox::about(this, "database", "database open failed");}if (db.open()){qDebug() << file_db << " opened ok.";}
3 查询数据库
//2 查询数据库,获取所有的数据信息.//各种操作QSqlQuery query(db);query.prepare("SELECT * FROM nudt_dev");if (!query.exec())qDebug() << query.lastError();else{QSqlRecord rec = query.record();int cols = rec.count();/* for (int c = 0; c<cols; c++)qDebug() << QString("Column %1: %2").arg(c).arg(rec.fieldName(c));*///查询结果填充到tableWidget中.while (query.next()){int id = query.value(0).toInt();QString name = query.value(1).toString();int cb_type_index = query.value(2).toInt();QString combat_radius = query.value(3).toString();QString speed = query.value(4).toString();int cb_scout_cap_index = query.value(5).toInt();QString armored_car_low_loss = query.value(6).toString(); //轻损QString armored_car_mid_loss = query.value(7).toString();//中损QString armored_car_high_loss = query.value(8).toString();//重损QString truck_low_loss = query.value(9).toString();QString truck_mid_loss = query.value(10).toString();QString truck_high_loss = query.value(11).toString();QString build_low_loss = query.value(12).toString();QString build_mid_loss = query.value(13).toString();QString build_high_loss = query.value(14).toString();int cb_build_struct_index = query.value(15).toInt();int cb_build_materials_index = query.value(16).toInt();int cb_build_thickness_index = query.value(17).toInt();//表填充.init_table_widget(name, cb_type_index, combat_radius, speed, cb_scout_cap_index, armored_car_low_loss,armored_car_mid_loss, armored_car_high_loss, truck_low_loss, truck_mid_loss, truck_high_loss,build_low_loss, build_mid_loss, build_high_loss, cb_build_struct_index, cb_build_materials_index, cb_build_thickness_index);}}
4 数据库插入
QString sql = "insert into nudt_dev values (";sql += "NULL";sql += ",";sql += "'" + name + "',";sql += QString::number(cb_type->currentIndex()) + ",";sql += combat_radius + ",";sql += speed + ",";sql += QString::number(cb_scout_cap->currentIndex()) + ",";sql += armored_car_low_loss + ",";sql += armored_car_mid_loss + ",";sql += armored_car_high_loss + ",";sql += truck_low_loss + ",";sql += truck_mid_loss + ",";sql += truck_high_loss + ",";sql += build_low_loss + ",";sql += build_mid_loss + ",";sql += build_high_loss + ",";sql += QString::number(cb_build_struct->currentIndex()) + ",";sql += QString::number(cb_build_materials->currentIndex()) + ",";sql += QString::number(cb_build_thickness->currentIndex()) ;sql += ")";qDebug() << "sql:" << sql;query.prepare(sql);if (!query.exec()){qDebug() << query.lastError();}else{qDebug() << "insert ok.";}
27.Qt操作sqlite3数据库相关推荐
- Qt操作SQLite数据库的三种方式
Qt访问Sqlite数据库的三种方式(即使用三种类库去访问),分别为QSqlQuery.QSqlQueryModel.QSqlTableModel,对于这三种类库,可看为一个比一个上层,也就是封装的更 ...
- Golang操作sqlite3数据库教程
Golang操作sqlite3数据库教程 本文介绍sqlite数据库,如何使用sqlite3包操作轻量级关系型数据库. sqlite概述 sqlite是嵌入式关系型数据库引擎,官方描述为自包含的.无服 ...
- QT操作sqlite数据库汇总
QT自带的QSqlite数据库中实现id主键自增长 QSqlite是QT自带的轻量级数据库,使用起来非常方便,对系统环境也没有任何的环境要求,可移植性非常好,适合数据量不是太大,要求不是太高的程序.本 ...
- QT之SQLITE3数据库
目录 一.数据库简介 二.Linux下使用sqlite3 三.SQL语句 1.Create Table 2.Drop Table 3.Truncate Table 4.Insert Into 5.Se ...
- QT操作Sqlite数据库修改字段名称和删除字段
目录 一.QSqlDatabase概述 二.QSqlDatabase模块的使用 三.修改字段名称和删除字段 1.sql语句执行步骤 2.程序执行 一.QSqlDatabase概述 QSqlDataba ...
- sqlite3常用命令以及django如何操作sqlite3数据库
一.如何进入sqlite3交互模式进行命令操作? 1.确认sqlite3是否已经安装 进去python命令行,执行 >>> import sqlite3 >>> 没 ...
- node sqlite 插入数据_使用 Sequelize 操作 Sqlite3 数据库
0x01 Sequelize 是什么? Sequelize 是一个基于 Promise 的 Node.js ORM,目前支持 Postgres.MySQL.SQLite 和 Microsoft SQL ...
- 08.QT中sqlite3数据库基本操作
Qt版本数据库操作 1 创建项目时选择sql模块 2 简易效果图如下 3 代码如下图所示 #include "SqliteDemo.h" #include <QtSql/QS ...
- 【iOS10】使用XCode8、Swift3. 操作SQLite3数据库的步骤(包括配置环境和SQLite语句)
一.配置使用SQLite时的Swift框架工程环境 步骤如下: 1.点击项目名称 - Linked Frameworks and Libraries - "+" - 搜索" ...
最新文章
- 10.05 最初对Linux的了解,对Shell的认识
- 划重点!《企业数字化升级之路》白皮书讲了哪些干货?
- requirednew基于xml配置日志不回滚_Mybatis 系列 4:引入日志框架
- 小米一键上锁工具_小米首款高端全自动智能锁火热预售中,一触开启全自动时代...
- C#9.0 每个开发人员都必须知道的4个特性
- 零基础 5 分钟上手,程序员喜提 AIoT 新利器!
- vbs 获取计算机主机名,vbs 获取主机名
- Android第三十三期 - Dialog的应用
- 关于郭天祥51开发板无法烧敲代码问题的解决(Prolific USB-to-Serial Comm Port)
- 你使用过哪些数据分析的方法?
- 《Java开发实战经典》笔记
- linux下解压zip文件命令
- mysql中乘积函数_excel乘积函数之dproduct函数的使用和例子
- 大一新生HTML期末作业 个人网页王嘉尔明星介绍网页设计与制作
- 折半插入排序顺序结构
- 两化融合的定义和两化融合如何认定
- 易特科:世界医学泰斗联姻中国IT精英
- MSTP多实例配置实验
- 【Gstreamer】PUSH/PULL mode生动解析
- Latex设置页面横置
热门文章
- Kafka 消息序列化反序列化
- python pdfminer解析pdf文件的每一行,得到每一行的坐标与每个字符的坐标
- pandas时间序列与自回归ARIMA模型
- java 虚拟机类型的卸载_《深入理解Java虚拟机》:类加载和初始化(二)
- 计算机软考可以直接高级吗,计算机软考没有中级能考高级吗
- XAF-UI元素概述
- P2057 [SHOI2007]善意的投票 最小割
- JSON与Delphi Object的互换
- 第7篇 WPF C# 怎样定义类及其接口
- 【转】MS SQL Sever 远程安装导入数据演示(图)