Qt:同时操作两个sqlite的数据库
db = QSqlDatabase::addDatabase("QSQLITE", "first");//打开数据库一指定绝对路径这个是其他文件生成的数据库db.setDatabaseName("D:/qt_demo/build-sqlite_demo-Desktop_Qt_5_8_0_MinGW_32bit-Debug/student.db");db2 = QSqlDatabase::addDa
·
db = QSqlDatabase::addDatabase("QSQLITE", "first"); //打开数据库一 指定绝对路径 这个是其他文件生成的数据库 db.setDatabaseName("D:/qt_demo/build-sqlite_demo-Desktop_Qt_5_8_0_MinGW_32bit-Debug/student.db"); db2 = QSqlDatabase::addDatabase("QSQLITE", "second"); //打开数据库一 指定绝对路径 创建的数据库 db2.setDatabaseName("D:/qt_demo/staff.db"); if (!db2.open()) qDebug() << "db2 Error"; QSqlQuery query2(db2);// 关联数据表2 //定义一条创建表的sql语句, 表明:stuff 表中的字段: id name age QString sqlCreate = QString("create table staff(id integer primary key autoincrement,name varchar(20), age int););
//这样就可以在同一个工程里面用两个数据库,引用其他文件的数据库也可以。
直接上代码:
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QSqlQuery>
#include <QSqlError>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase("QSQLITE", "first");
//打开数据库一 指定绝对路径
db.setDatabaseName("D:/qt_demo/build-sqlite_demo-Desktop_Qt_5_8_0_MinGW_32bit-Debug/student.db");
if(!db.open())
qDebug() << "db Error";
db2 = QSqlDatabase::addDatabase("QSQLITE", "second");
//打开数据库一 指定绝对路径
db2.setDatabaseName("D:/qt_demo/staff.db");
if (!db2.open())
qDebug() << "db2 Error";
QSqlQuery query2(db2);// 关联数据表2
//定义一条创建表的sql语句, 表明:stuff 表中的字段: id name age
QString sqlCreate = QString("create table staff(id integer primary key autoincrement,"
"name varchar(20),"
"age int);");
//定义一条创建表的sql语句
if(!query2.exec(sqlCreate))
qDebug() << "create table error" << db2.lastError();
QSqlQuery query1(db); // 关联数据表1
QString sqlSelect = QString("select * from student;");
if(!query1.exec(sqlSelect))
qDebug() << "Error search data" << db.lastError();
while(query1.next())
{
int id = query1.value("id").toInt();
QString name = query1.value("name").toString();
int classNum = query1.value("class").toInt();
qDebug() << "id:" << id << "name" << name << "classNum" << classNum;
}
}
Widget::~Widget()
{
delete ui;
}
更多推荐
已为社区贡献1条内容
所有评论(0)