Qt--SQLite的使用,Qt--SQLite使用
一、SQLite的介绍
1、SQLite学习笔记--资料汇总
2、SQLite学习笔记--SQLite的基本介绍和安装
3、SQLite学习笔记--SQLite的命令与语法
4、SQLite学习笔记--数据类型与创建数据库
二、创建SQLite数据库
1、运行SQLite官方执行文件创建请看SQLite学习笔记--数据类型与创建数据库;
2、在Qt 工程中创建请看在Qt中使用SQLite数据库
三、Qt 中connect 数据库步骤
1、新建工程;
2、数据库文件拷贝到输出路径中;
3、pro文件中加上 sql 模块
//
QT += sql
//
4、工程中代码
//
#include <QWidget>
#include <QDebug>
#include <QString>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QTextStream>
int main(int argc, char *argv[])
{
QTextStream out(stdout);
QSqlDatabase dbUser;
dbUser = QSqlDatabase::addDatabase("QSQLITE");
dbUser.setDatabaseName("my.db");
//创建数据库连接并打开(如果数据库打开失败则终止应用程序)
if (!dbUser.open()) {
return 1;
} else {
//读数据库中的表
QStringList tables = dbUser.tables();
QString tabName, sqlString;
// tables = dbUser.tables(QSql::Tables);
//读表中数据
for (int i = 0; i < tables.size(); i++)
{
tabName = tables.at(i); //获取第 i+1 张表格的名称
qDebug() << tabName;
sqlString = "SELECT * FROM " + tabName; //从表中选取所有的列
QSqlQuery q(sqlString); //从表tabName中选取所有的列
QSqlRecord rec = q.record(); //表格tabName中的数据记录全部记在rec中
int fieldCount = rec.count(); //统计列数
qDebug() << fieldCount;
QString fieldName;
for (int j = 0; j < fieldCount; j++)
{
fieldName = rec.fieldName(j); //获取第 j+1 个列名
out << fieldName << "\t";
}
out << endl;
while (q.next())
{
out << q.value(0).toInt() << "\t";
out << q.value(1).toString() << "\t";
out << q.value(2).toString() << "\t";
out << q.value(3).toString() << "\t";
out << q.value(4).toString() << "\t";
out << q.value(5).toString() << "\t";
}
out << endl;
qDebug() << "nimeide" << q.value(2).toChar();
}
}
return 0;
}
//
5、工程连接点击此处
四、只是创建数据库
1、新建工程;
2、pro文件中加上 sql 模块
//
QT += sql
//
3、工程中代码
//
#include <QDebug>
#include <QString>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QTextStream>
int main(int argc, char *argv[])
{
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("my.db");
if (!db.open())
{
return 0;
}
QSqlQuery query;
query.exec(QObject::tr("create table user (uid vchar primary key, name vchar, sid vchar, npw vchar, cpw vchar)"));
query.exec(QObject::tr("insert into user values ('18862358888','xiaowang', '13050143**', '123456', '123456')"));
db.close();
return 0;
}
//
五、问题汇总
1、QT里使用sqlite的问题,好多坑
2、点击打开链接
3、Qt中使用QSqlDatabase::removeDatabase()的正确方法
致谢
1、《Qt Creator快速入门》[第3版] 作者 霍亚飞
2、在Qt中使用SQLite数据库
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。